Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Komponenten während der Laufzeit erstellen und löschen

  Alt 19. Apr 2019, 16:47
Edit: Durch den Vorschlag von Peterbelow konnte ich das gesamte System nun besser umsetzen, daher besteht das oben genannte Problem auch nicht mehr.
Nun hatte ich eine neue Idee, wobei ich wieder einige Probleme beim realisieren habe:
Beim zeichnen wird nicht nur ein Objekt sondern dynamisch viele (je nach Eingabe des Benutzers) erstellt (-> Kein Problem).
Natürlich werden ab einer bestimmten Anzahl, die Objekte außerhalb des Programmes gezeichnet.
Gibt es eine gute Möglichkeit zu scrollen?
Habe Online die Idee gesehen, dass man jedesmal die Objekte neuzeichnet und verschiebt je nach Stellung der Scrollbar aber um ehrlich zu sein habe ich keine Ahnung wie ich das am geschicktesten umsetzen soll, bzw. gibt es womöglich eine schönere/bessere alternative?
Wenn Du eine Zeichenfläche brauchst, die größer als der Clientbereich des Forms ist und vom Benutzer scrollbar sein soll, mach das so:

Wirf eine TScrollbox auf das Form und setzte sein Align auf alClient. Wirf eine TPaintbox auf die Scrollbox und setzte ihre Top und Left auf 0.
Hänge einen Handler an den OnPaint-Event der Paintbox. Verschiebe den Kode, den Du jetzt im FormPaint Eventhandler hast, in diese Methode, aber Achtung!! Du mußt jetzt auf den Canvas der Paintbox zeichnen, nicht auf den des Forms!

Die letzte Aufgabe ist es dann, wenn sich die Daten ändern, zu berechnen, wie groß die Zeichenfläche dafür sein muß, und die Höhe (und ev.Breite) der Paintbox entsprechend zu setzen. Das feuert nicht nur automatisch den OnPaint-Event der Paintbox, sondern die Scrollbox zeigt auch automatisch Rollbalken an, wenn die Paintbox größer wird als die Client area der Scrollbox.
Peter Below
  Mit Zitat antworten Zitat