![]() |
Re: Steuerelementearray
naja muss jeder selbst wissen wie er das machen möchte,
ich mach das mit dem Typcast und gebe auch den Speicher selbst wieder frei mann muß halt wissen was man da macht gruß tyrael |
Re: Steuerelementearray
wegn der übersichtlichkeit empfehle ich dir aber
in diesem Fall doch array of TButton zu nutzen |
Re: Steuerelementearray
Ich hab bis jetzt mal den Quellcode zusammengestellt:
Delphi-Quellcode:
*= in dieser Zeile fehlt wohl ein Paramteter: "AOwner: TComponent"
procedure TForm1.FormCreate(Sender: TObject);
var meinObjekt:TButton; var i : integer; const max : integer = 5; begin for i := 0 to max do begin meinObjekt := TButton.Create; // * einArray[i] := meinObjekt; end; end; Wenn ich aber das Programm laufen lassen will kommt die Meldung:
Code:
Was mach ich denn falsch?
[Fehler] Unit1.pas(41): Nicht genügend wirkliche Parameter
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
Re: Steuerelementearray
so ist es richtig:
Delphi-Quellcode:
meinObjekt := TButton.Create(nil);
ist das array überhaupt deklariert? |
Re: Steuerelementearray
Hai mirko2000,
setze als Owner z.B. self.
Delphi-Quellcode:
meinObjekt := TButton.Create(self); // *
|
Re: Steuerelementearray
Zitat:
var einArray : array of TButton; Ist es das was du meinst? Wenn ich als Parameter 'self' oder 'nil' übergebe kommt diese Meldung:
Code:
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 0044D9F3 in Modul 'Project1.exe'. Schreiben von Adresse 00000000'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fotsetzen.
|
Re: Steuerelementearray
1.
Zitat:
Zitat:
beide Versionen sind richtig. Unterschied: bei 1. die übergeordnete Komponente ist der parent wenn der parent gefreet wird ist auch dein Objekt frei bei 2. du musst das objekt selber befreien (Objekt.free), da es keinen parent hat |
Re: Steuerelementearray
Hai mirko2000,
Zitat:
|
Re: Steuerelementearray
jop :)
zb.
Delphi-Quellcode:
setlength(einArray, max);
|
Re: Steuerelementearray
Yuhuu! Es kommen jetzt zumindest keine Fehlermeldungen mehr!
Delphi-Quellcode:
Jetzt hab ich da noch eine (blöde) Frage: Ich hab ja jetzt in meinem Fall 9 TButtons mit den Namen einArray[0 bis 8] erstellt. Wie kann ich die denn jetzt auf meinem Formular anzeigen lassen?
var
Form1: TForm1; einArray : array of TButton; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var meinObjekt:TButton; var i : integer; begin SetLength(einArray,9); for i := 0 to 8 do begin meinObjekt := TButton.Create(self); einArray[i] := meinObjekt; end; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 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