![]() |
AW: Objecteigenschaften während der Laufzeit ändern
Hallo zusammen,
zuersteinmal setzt Du "procedure createExpanderNeu()" als procedure der TForm.
Delphi-Quellcode:
Natürlich musst Du nun die Klasse TExpanderNeu vor die Deklaration von TForm1 setzen und die globale Variable ExpanderArray entfernen und durch FExpanderArray ersetzen.
type
TForm1 = class(TForm) .... private FExpanderArray: array of TExpanderNeu; procedure createExpanderNeu(Parameterliste); public
Delphi-Quellcode:
Ich habe in den Parametern der Prozedur das "i" herausgenommen, da es nun zu keinen Missverständnissen kommen kann.
procedure TForm1.createExpanderNeu(AOwner: TFmxObject; labelText : String; posX, posY, hoehe, breite : integer);
var liNewIndex: Integer; begin liNewIndex := Length(ExpanderArray); SetLength(FExpanderArray, liNewIndex + 1); FExpanderArray[liNewIndex ] := TExpanderNeu.Create(AOwner); FExpanderArray[liNewIndex ].Parent := FlowLayout2; FExpanderArray[liNewIndex ].HitTest := true; FExpanderArray[liNewIndex ].Text := labelText; FExpanderArray[liNewIndex ].Cursor := crHandPoint; FExpanderArray[liNewIndex ].height := hoehe; FExpanderArray[liNewIndex ].width := breite; createBild(FExpanderArray[liNewIndex]); end; |
AW: Objecteigenschaften während der Laufzeit ändern
Danke für die Info, ich werde das mal testen und berichte ob ich damit klar gekommen bin :wink:
|
AW: Objecteigenschaften während der Laufzeit ändern
Hallo zusammen,
ich hätte hier noch eine Frage. Wie ist das gemeint "die globale Variable ExpanderArray entfernen und durch FExpanderArray ersetzen."? Das habe ich nicht verstanden. |
AW: Objecteigenschaften während der Laufzeit ändern
Hallo zusammen,
Zitat:
Delphi-Quellcode:
Die hier deklarierten Variabeln sind "globale Variabeln", welche in jedem Fenster einer Anwendung bzw. in der gesamten Anwendung gültig sind.
var
Form1: TForm1; y, i,j,x,test: integer; progPfad,datei2 : string; ExpanderArray: array of TExpanderNeu; implementation {$R *.fmx} Dort gehört aber nur das hin, was undedingt auch wirklich sein muss. Also raus mit "y", "i","j","x","test", "progPfad","datei2" und "ExpanderArray". Statt dessen entfernst Du diese globale Deklarationen und setzt sie in die Typ-Deklaration in der Form. Dann ist die Variable weiterhin in jeder Instanz der Form gültig, aber kann nicht durch eine weitere Instanz des Fensters oder von irgendetwas, was den gleichen globalen Variabelnamen benutzt, überschrieben werden. Du weisst ja nicht, ob eine Komponente zufällig eine globale Variable mit diesem Namen auch anspricht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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