Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Komponente vor dem Platzieren umbenennen / OpenTools API (https://www.delphipraxis.net/77517-komponente-vor-dem-platzieren-umbenennen-opentools-api.html)

CG2003 26. Sep 2006 06:34

Re: Komponente vor dem Platzieren umbenennen / OpenTools API
 
So, habe das mit Deiner "ShowMessage" ausprobiert. Die Showmessage bekomme ich ja noch angezeigt, doch wenn der die Komponente umbenennen soll, via

Delphi-Quellcode:
Compo := SetPropByName('Name', 'NeuerTestName');
bekomme ich eine AV.

chaosben 26. Sep 2006 06:41

Re: Komponente vor dem Platzieren umbenennen / OpenTools API
 
Du darfst die Komponente erst umbennen, wenn sie initialisiert ist. Das erkennst du daran, das NewName schon einen Wert hat.
Auszug aus dem CNA:
Delphi-Quellcode:
procedure TFormNotifier.ComponentRenamed(ComponentHandle: TOTAHandle;
  const OldName, NewName: string);
begin
  if (Wizard.FSettings.ExpertActive) then
  begin
    if (OldName='') and (NewName<>'') then
    begin
      FRenameTimer.Enabled:=false;
      FInsertedComponents.AddObject(NewName,ComponentHandle);
      FRenameTimer.Enabled:=true;
    end;
  end;
end;

CG2003 26. Sep 2006 06:50

Re: Komponente vor dem Platzieren umbenennen / OpenTools API
 
Zitat:

Zitat von chaosben
Du darfst die Komponente erst umbennen, wenn sie initialisiert ist. Das erkennst du daran, das NewName schon einen Wert hat.
Auszug aus dem CNA:
Delphi-Quellcode:
procedure TFormNotifier.ComponentRenamed(ComponentHandle: TOTAHandle;
  const OldName, NewName: string);
begin
  if (Wizard.FSettings.ExpertActive) then
  begin
    if (OldName='') and (NewName<>'') then
    begin
      FRenameTimer.Enabled:=false;
      FInsertedComponents.AddObject(NewName,ComponentHandle);
      FRenameTimer.Enabled:=true;
    end;
  end;
end;

Hmm, müsste ich mal ausprobieren, doch was bedeutet in diesem Falle

Delphi-Quellcode:
FInstertedComponents.AddObject(NewName, ComponentHandle);
Ich denke das eigentlich Umbenennen mache ich mit

Delphi-Quellcode:
SetPropByName('Name', 'NeuerName');
Und was ist "Wizard", "FSettings" und "FRenameTimer" ?

chaosben 26. Sep 2006 07:19

Re: Komponente vor dem Platzieren umbenennen / OpenTools API
 
Das war nur ein Beispiel. Das einzig interessante an dem Code war die Abfrage von OldName und NewName. Die anderen Objekte kümmern sich nur um das Cachen der Komponenten. (muss man nicht machen, kann man aber :) )

CG2003 26. Sep 2006 08:15

Re: Komponente vor dem Platzieren umbenennen / OpenTools API
 
Ich weiss, es ist wahrscheinlich zuviel verlangt, aber wärst Du so nett, mir ein kleines Beispiel zu geben?
Irgendwie habe ich momentan in meinem Code wohl den Wurm drin und ich finde einfach nicht die Ursache, warum es nicht läuft.

Ich will doch nur Komponenten umbenennen, wenn sie auf einem Form platziert werden.

Es wäre jedenfalls sehr nett von Dir und ich wäre Dir sehr dankbar.

chaosben 26. Sep 2006 10:13

Re: Komponente vor dem Platzieren umbenennen / OpenTools API
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anbei hab ich deinen Code ein wenig umgestrickt. Leider hab ich in meiner Arbeitswut vergessen an die entsprechenden Zeilen Kommentare zu schreiben. Sorry :(

CG2003 26. Sep 2006 10:58

Re: Komponente vor dem Platzieren umbenennen / OpenTools API
 
Zitat:

Zitat von chaosben
Anbei hab ich deinen Code ein wenig umgestrickt. Leider hab ich in meiner Arbeitswut vergessen an die entsprechenden Zeilen Kommentare zu schreiben. Sorry :(

Super, vielen Dank! Das funktioniert einwandfrei! Glaub' mir, ich bin Dir sehr dankbar!

chaosben 26. Sep 2006 11:05

Re: Komponente vor dem Platzieren umbenennen / OpenTools API
 
Zitat:

Zitat von CG2003
Super, vielen Dank! Das funktioniert einwandfrei! Glaub' mir, ich bin Dir sehr dankbar!

:-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr.
Seite 3 von 3     123   

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