Hallo alle zusammen!!
Ich bin gerade dabei, eine ActiveX-Komponente zu entwickeln und scheitere dabei, den Namen der Instanz zu ermitteln. Warum bekomme ich den korrekten Namen erst so spät (Nach manuellem Betätigen eines Buttons zum Auslesen und nicht schon im OnCreate, oder OnPaint meinr zugehörigen Form?
Mein Quellcode sieht folgendermassen aus:
Wenn ich in mein Logfile schaue, dann kommt der korrekte Name (den ich in der Eigenschaft Name beim Platzieren des Elements eingegeben habe) erst in der Logdatei an, wenn ich den BitBtn1 manuell betätige.
In der Logdatei sieht das ganze so aus:
Hat irgendjemand eine Idee warum das so ist
, oder wie ich den korrekten Namen schon im OnCreate bekomme?
Ich bin gerade dabei, eine ActiveX-Komponente zu entwickeln und scheitere dabei, den Namen der Instanz zu ermitteln. Warum bekomme ich den korrekten Namen erst so spät (Nach manuellem Betätigen eines Buttons zum Auslesen und nicht schon im OnCreate, oder OnPaint meinr zugehörigen Form?
Mein Quellcode sieht folgendermassen aus:
Code:
procedure TMyActiveX.ActiveFormCreate(Sender: TObject); begin g_err.LogErrorMsg('<ActiveFormCreate> Start..',[],C_PRIO_DEBUG); g_err.LogErrorMsg('<ActiveFormCreate> Get_Name=%s',[Name],C_PRIO_DEBUG); finally g_err.LogErrorMsg('<ActiveFormCreate> ..Ende',[],C_PRIO_DEBUG); end; end; procedure TMyActiveX.ActiveFormPaint(Sender: TObject); begin g_err.LogErrorMsg('<ActiveFormPaint> Start..',[],C_PRIO_DEBUG); g_err.LogErrorMsg('<ActiveFormPaint> Get_Name=%s',[Name],C_PRIO_DEBUG); BitBtn1Click(self); g_err.LogErrorMsg('<ActiveFormPaint> ..Ende',[],C_PRIO_DEBUG); end; procedure TMyActiveX.BitBtn1Click(Sender: TObject); begin g_err.LogErrorMsg('<BitBtn1Click> Get_Caption=%s',[Caption],C_PRIO_DEBUG); g_err.LogErrorMsg('<BitBtn1Click> Get_Name=%s',[Name],C_PRIO_DEBUG); end; function TMyActiveX.Get_Name: WideString; begin Result := WideString(Name); end;
Wenn ich in mein Logfile schaue, dann kommt der korrekte Name (den ich in der Eigenschaft Name beim Platzieren des Elements eingegeben habe) erst in der Logdatei an, wenn ich den BitBtn1 manuell betätige.
In der Logdatei sieht das ganze so aus:
04.06.2008 16:57:14.333 [DEBUG] <ActiveFormCreate> Start..
04.06.2008 16:57:14.333 [DEBUG] <ActiveFormCreate> Get_Name=MyActiveX
04.06.2008 16:57:14.333 [DEBUG] <ActiveFormCreate> ..Ende
04.06.2008 16:57:14.333 [DEBUG] <ActiveFormPaint> Start..
04.06.2008 16:57:14.348 [DEBUG] <ActiveFormPaint> Get_Name=MyActiveX
04.06.2008 16:57:14.348 [DEBUG] <BitBtn1Click> Get_Name=MyActiveX
04.06.2008 16:57:14.348 [DEBUG] <ActiveFormPaint> ..Ende
04.06.2008 16:57:27.145 [DEBUG] <BitBtn1Click> Get_Name=name_y
04.06.2008 16:57:14.333 [DEBUG] <ActiveFormCreate> Get_Name=MyActiveX
04.06.2008 16:57:14.333 [DEBUG] <ActiveFormCreate> ..Ende
04.06.2008 16:57:14.333 [DEBUG] <ActiveFormPaint> Start..
04.06.2008 16:57:14.348 [DEBUG] <ActiveFormPaint> Get_Name=MyActiveX
04.06.2008 16:57:14.348 [DEBUG] <BitBtn1Click> Get_Name=MyActiveX
04.06.2008 16:57:14.348 [DEBUG] <ActiveFormPaint> ..Ende
04.06.2008 16:57:27.145 [DEBUG] <BitBtn1Click> Get_Name=name_y
, oder wie ich den korrekten Namen schon im OnCreate bekomme?