Announcement

Collapse
No announcement yet.

Instanznamen kommt sehr spät???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Instanznamen kommt sehr spät???

    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:
    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
    Hat irgendjemand eine Idee warum das so ist
    , oder wie ich den korrekten Namen schon im OnCreate bekomme?
Working...
X