![]() |
Zugriff auf dynamisch erstellte Objecte
Hallo Zusammen,
ich bitte um Hilfe. Ich erstelle zur Laufzeit ein TAdvDateTimePicker (TMS-Komponente)
Delphi-Quellcode:
Das klappt auch wunderbar und ich kann auch den DefaultWert zuweisen.
procedure TFrame_Planung.TabGridCreate(Name: string);
var StartDate: TAdvDateTimePicker; //Start_DateTimePicker StartDate:= TAdvDateTimePicker.Create(Self); StartDate.Parent:= Panel; StartDate.Name:='Date'+Name; StartDate.Visible:=true; StartDate.Left:=23; StartDate.Top:=20; StartDate.Height:=21; StartDate.Width:=200; //Start-Default-Wert StartDate.DateTime:= StrToDateTime(DateToStr(Now)+' '+MySQL.Find_Property('Default_Start_1_FA', 'Wert')); Jetzt möchte ich in einer anderen Prozedur den DateTime-Wert abgreifen, aber das bekomme ich nicht hin...
Delphi-Quellcode:
Ich habe immmer einen Zugriffsfehler, als würde der TAdvDateTimePicker garnicht gefunden werden...
procedure TFrame_Planung.Datengrid_Counting(SG: TAdvStringGrid);
var I: integer; DateTimePicker: TAdvDateTimePicker; Anfang: TDateTime; begin DateTimePicker:=PageControl_Maschinen.ActivePage.FindComponent('Date'+Copy(SG.Name,6,Length(SG.Name)-5)) as TAdvDateTimePicker; Anfang:=DateTimePicker.DateTime; for I := 2 to SG.RowCount -2 do begin ... //Kumuliertes Datum ermitteln if SG.Cells[13,I]<>'00:00' then begin Anfang:=Anfang+StrToTime(SG.Cells[13,I]); SG.Cells[14,I]:=DateToStr(Anfang); end; end; end; Wenn ich folgendes versuche:
Delphi-Quellcode:
Anfang:=PageControl_Maschinen.ActivePage.FindComponent('Date'+Copy(SG.Name,6,Length(SG.Name)-5)) as TAdvDateTimePicker.DateTime;
dann kann ich gar nicht compilieren, weil ich folgenden Hinweis bekomme:
Delphi-Quellcode:
[DCC Fehler] Frame_PlanungUnit.pas(823): E2233 Auf Eigenschaft 'DateTime' kann hier nicht zugegriffen werden
Sieht jemand meinen Fehler? Vielen Dank Patrick |
AW: Zugriff auf dynamisch erstellte Objecte
Mit
Delphi-Quellcode:
StartDate:= TAdvDateTimePicker.Create(Self);
erzeugst du die Instanz mit Owner =
Delphi-Quellcode:
. In diesem Fall ist das die Frame-Instanz von TFrame_Planung. Daher musst du die Komponente auch über das FindComponent der Frame-Instanz suchen:
Self
Delphi-Quellcode:
DateTimePicker:=FindComponent('Date'+Copy(SG.Name,6,Length(SG.Name)-5)) as TAdvDateTimePicker;
|
AW: Zugriff auf dynamisch erstellte Objecte
PRIMA! Danke, das war der Grund!
Jetzt klappt es! Vielen Dank Patrick |
AW: Zugriff auf dynamisch erstellte Objecte
Hallo,
hm, wenn du eh innerhalb des Frames bist, warum merkst Du dir den DateTimePicker nicht in einer Frame-Variable, oder wenn es mehrere sind, in einer TList /TObjectList oder ähnlichem? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 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