![]() |
Bitmap zu klein
Hey,
ich habe ein kleines Problem und zwar ich programmiere gerade einen MIDI sequenzer. Das Problem besteht darin das wenn ich alle Noten einlese, diese dann auf einem Bitmap zeiche (zuerst Hintergrund(Kästchen überall) und dann Noten drauf) dann kommt es bei langen Tracks zu fehlern weil die Breite des Images ist genauso groß wie ein Track lang ist (und das kann sehr lang sein) und wenn ich zum Beispiel ein Track lade der 3 Minuten lang ist dann erstelle ich ein ziemlich großes Bitmap was zu einem Fehler führt (nicht genügend Speicher). Ich habs schon versucht zum Beispiel zu divieren (zB TrackLength div 100 aber das ist auch nicht die Lösung weil die Noten dann zu klein sind). Ja und ich wollte euch mal fragen ob ihr irgendwelche Vorschläge habts wie ich das am besten realisieren kann. Direkt aufs Canvas zu Zeichnen ist doch ein bisschen anstrengend weil es ziemlich viele berechnungen sind und die performence dann nicht all zu optimal wäre. Mein Idee wäre Shapes für die Noten und für den Hintergrund selber zeichnen aber ob das so gut ist. Wenn ich z.B. 300 Noten habe dann wären das 300 Objekte was mir auch viel erscheint. Mein Noten Editor soll so ungefähr aussehen: ![]() Ich hoffe jemand kann mir weiter helfen :) |
Re: Bitmap zu klein
Ich gehe nicht davon aus, dass der ganze Track komplett im Blickfeld des Users sein muss.
Warum also nicht partiell einlesen und zeichnen? |
Re: Bitmap zu klein
Nein aber ich hab mir gedacht das es möglich sein sollte das man gleich scrollt und somit die Noten angezeigt werden. Funktioniert aber eh wunderbar bis auf das eine das ich ein TImage/Bitmap benutze und dass ich da nicht eine unbegrenze größe habe (was ja klar ist). Und ausserdem bekomme ich die Noten alle aufeinmal in einer funktion und die zeichne alle aufeinmal auf. Es wäre schon anstrengender das zu teilen und dann zu zeichnen aber naja, falls es keine anderen Lösungsvorschläge gibt dann müsst ich das doch so machen.
|
Re: Bitmap zu klein
[OT]
Und beschäftige Dich mal mit Absätzen; Deine Texte sind schwer zu lesen. :wink: [/OT] |
Re: Bitmap zu klein
[OT]
Werde ich machen. Danke, worker. [/OT] |
Re: Bitmap zu klein
du könntest auch nur den aktuell sichtbaren Teil auf eine PaintBox zeichnen zusammen mit 'ner ScrollBar könntest du dir die Anfangsposition berechnen und dann ab da nur diesen Teil ausgeben.
|
Re: Bitmap zu klein
@ErazerZ: Ich hätte das Problem auch so versucht zu lösen.
Teste mal tbitmap32 von der Graphics32 Kompo Gruß Rudi |
Re: Bitmap zu klein
Ach ja, notfalls könnts du auch mehrere BitMaps erstellen und dieser hintereinander anzeigen.
|
Re: Bitmap zu klein
Danke, Graphics32 werd ich wahrscheinlich eh benützen aber das mit Bitmaps hab ich auch versucht nur dacht ich mir vielleicht wenn ich 300 kb datei lade und das 11 oktave mal sagen wir 40 wäre auch viel.
|
Re: Bitmap zu klein
Naja so schwer ist das an sich doch nicht? Statt einfach alles zu zeichnen implementierst du eine Funktion die von Zeitpunkt A bis zum Zeitpunkt B die Noten auf ein TBitmap zeichnet. Nun ruft die "alte" Funktion diese mit den Parametern 0 bis Länge des Tracks.
Und ansonsten baust du dir eine Scrollbar hin welche sich beim bewegen meldet und die Bitmap neu zeichnen lässt. MfG xZise |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz