Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objecteigenschaften während der Laufzeit ändern (https://www.delphipraxis.net/183055-objecteigenschaften-waehrend-der-laufzeit-aendern.html)

BadenPower 9. Dez 2014 12:03

AW: Objecteigenschaften während der Laufzeit ändern
 
Hallo zusammen,

zuersteinmal setzt Du "procedure createExpanderNeu()" als procedure der TForm.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
   ....
   private
    FExpanderArray: array of TExpanderNeu;
    procedure createExpanderNeu(Parameterliste);
   public
Natürlich musst Du nun die Klasse TExpanderNeu vor die Deklaration von TForm1 setzen und die globale Variable ExpanderArray entfernen und durch FExpanderArray ersetzen.

Delphi-Quellcode:
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;
Ich habe in den Parametern der Prozedur das "i" herausgenommen, da es nun zu keinen Missverständnissen kommen kann.

Torwein 9. Dez 2014 13:58

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:

Torwein 10. Dez 2014 12:14

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.

BadenPower 10. Dez 2014 12:41

AW: Objecteigenschaften während der Laufzeit ändern
 
Hallo zusammen,

Zitat:

Zitat von Torwein (Beitrag 1282878)
Wie ist das gemeint "die globale Variable ExpanderArray entfernen und durch FExpanderArray ersetzen."?

Delphi-Quellcode:
var
  Form1: TForm1;
  y, i,j,x,test: integer;
  progPfad,datei2 : string;
  ExpanderArray: array of TExpanderNeu;

implementation

{$R *.fmx}
Die hier deklarierten Variabeln sind "globale Variabeln", welche in jedem Fenster einer Anwendung bzw. in der gesamten Anwendung gültig sind.

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 02:18 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz