![]() |
wie kann ich einem objekt ein z.b. ein label zuweisen
wer kann mir auf die sprünge helfen?
ich möchte für ein programm objekte deklarieren, da ich mehrer gleiche instanzen davon benötige. die einzelnen objekte sollen daten verarbeiten und dann an bestimmten stellen auf meiner form ausgeben (TLabel). wie kann ich jeder instanz ein bestimmtes TLabel zuweisen, welches ich bereits zur entwurfszeit auf die form gelegt habe? also nach dem motto:
Delphi-Quellcode:
das objekt soll bei ini(...) das Label1 als ausgabeort übergeben bekommen und weiss fortan,
procedure form1.create;
begin meinObjekt1.create; meinObjekt1.ini(label1); .... end; wo es einen bestimmten string ausgibt (nämlich immer in Label1). vielen dank im voraus, chris (zopf)! [edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit] |
Re: wie kann ich einem objekt ein z.b. ein label zuweisen
Moin Chris,
wenn ich davon ausgehe, dass beim Erzeugen des Objektes schon klar ist, wohin es seine Daten ausgeben soll, kannst Du es ja schon im Konstruktor als Parameter übergeben, und dann in einen privaten Feld des Objektes speichern. |
Re: wie kann ich einem objekt ein z.b. ein label zuweisen
HY Zopf!
Vielleicht kannst Du Dir Tag Properties Deiner Labels zunutze machen? Ich ziehe auf diese Weise Daten aus Stored Procedures auf Formulare. Wenn Du Deine Objekte in einem Array ablegst, kannst Du eventuell hiermit was anfangen:
Delphi-Quellcode:
Viel Erfolg!Var i:Integer; Lbl:TLabel; For i:=0 To ComponentCount-1 Do Begin If Components[i] is TLabel Then Begin Lbl:=TLabel(Components[i]); ObjectArray[Lbl.Tag].Label:=Lbl; End; End; OLLI |
Re: wie kann ich einem objekt ein z.b. ein label zuweisen
hi olly, hi christian,
vielen dank erstmal für eure antworten! ja christian, bei programmstart ist klar, wohin die daten sollen. will im constructor auch das entsprechende label übergeben, bekomme jedoch immer eine fehlermeldung. hier mein code, vielleicht könnt ihr mir sagen, was ich falsch gemacht habe:
Delphi-Quellcode:
[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künfig selber machen. Danke. Mfg, Christian Seehase[/edit]
//das steht in einer eigenen unit
INTERFACE type TTest = class(TObject) private FAnzeige:TLabel; public constructor create(Alabel:TLabel); //... procedure zeig; end; IMPLEMTATION constructor TTest.create(ALabel:TLabel); begin inherited create; FAnzeige:=ALabel; //diese übergabe funzt nicht...warum? end; procedure TTest.zeig; begin FAnzeige.Caption:='bla...bla'; end; ........................................................... // im hauptprogramm dann... IMPLEMENTATION USES ...; //die Unit mit der Klassendeklaration var myTest:TTest; procedure myForm.create; begin myTest.create(Label1); //label1 zur entwurfszeit auf die form gelegt // an der stelle fehlermeldung ... end; |
Re: wie kann ich einem objekt ein z.b. ein label zuweisen
Moin Chris,
der Fehler kommt daher, dass Du das Objekt falsch erzeugst. Es muss heissen:
Delphi-Quellcode:
MyTest ist eine Variable vom Typ TTest, und mit TTest.Create(...) wird ein Objekt der Klasse TTest erzeugt, und der Zeiger auf dieses Objekt wird dann der Variablen übergeben.
MyTest := TTest.Create(Label1);
|
Re: wie kann ich einem objekt ein z.b. ein label zuweisen
hi christian,
natürlich, du hast recht, manchmal macht man so blöde fehler und ist blind wie ein maulwurf. ich danke dir, für deine mühe. bis zum nächsten mal, herzlichst, chris! (zopf) p.s. falls du mal auf meine hp gehen willst hier der link: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 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