Forum: Programmieren allgemein
by peterbelow,
23. Apr 2019
Tja, das Problem liegt vermutlich in deinem (mangelnden) Verständnis, wie Objekte funktionieren. Objekte sind Referenz-Typen, wenn man ein Objekt einer Variablen (oder dem Element eines Arrays) zuweist wird dabei nicht der Inhalt des Objektes kopiert, sondern seine Referenz (Addresse).
var zahlen: array of TStrings;
Ein SetLength(zahlen, N) liefert hier erstmal nur Speicherplatz für N...
Forum: Programmieren allgemein
by peterbelow,
19. Apr 2019
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...
Forum: Programmieren allgemein
by peterbelow,
19. Apr 2019
Du machst das irgendwie völlig falsch. Wenn Du variablen Text auf ein Form schreiben willst, mach das mit Canvas.TextOut oder Canvas.TextRect, nicht, indem Du TLabels auf das Form legst. Beides zu mischen macht keinen Sinn, denn TLabels sind persistent, wenn man sie einmal angelegt hat zeichnen sie sich selbst neu, wenn das notwendig ist. Wenn sich der Text ändert, den sie anzeigen sollen, ändert...
Forum: Programmieren allgemein
by peterbelow,
19. Apr 2019
Nicht bei Komponenten, die man im Kode erzeugt. Es ist der Designer, der Namen erzeugt, nicht der Compiler.
Forum: Programmieren allgemein
by peterbelow,
18. Apr 2019
Die Frage macht nur Sinn, wenn Du ein autocreated Form verwendest, das nach Benutzung nicht zerstört sondern nur versteckt wird (voreingestelltes Verhalten von TForm). Eigentlich sollte man nur das Mainform in der autocreate-Liste belassen und alle anderen Forms nach Bedarf erzeugen und auch konsequent wieder zerstören, wenn der Benutzer sie schließt. Naja, jedem Tierchen sein Pläsierchen :)
...