Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Komponente zur Designtime umbenennen (https://www.delphipraxis.net/187642-komponente-zur-designtime-umbenennen.html)

himitsu 17. Dez 2015 09:42

Komponente zur Designtime umbenennen
 
Moin :hi:,

wie kann man eine Komponente zur Designtime umbenennen, so dass der Formdesigner darauf reagiert und die Variable in der PAS mit ändert?
z.B. beim Ändern der Label-Caption den Komponentennamen anpassen (falls es noch keinen Ordentlichen gibt, aka "Label123")

Wenn das z.B. beim Laden der DFM passiert (csDesigning in ComponentState), im Setter des Property, dann wird nur in der DFM umbenannt und in der PAS bleibt es so.
Beim Speichern dann "Feld XYZ besitzt keine entsprechende Komponente. Soll die Deklaration entfernt werden?" und wenn man die Variable nicht im Code verwendet, dann gibt es auch (noch) keinen Compilerfehler.


In der OTA fand ich auch nichts, auf die Schnelle, wie/womit man das Umbenennen anstoßen könnte, z.B. im BeforSave-Ereignis der Form, oder weiterhin im Setter.

stahli 17. Dez 2015 09:50

AW: Komponente zur Designtime umbenennen
 
Was meinst Du?

Rechtsklick/Refactoring/Umbenennen?
...doch sicher nicht?

himitsu 17. Dez 2015 10:25

AW: Komponente zur Designtime umbenennen
 
Nee.

Praktisch die Komponente sich selber.

Delphi-Quellcode:
//procedure SetText(const Value: TCaption); virtual;

procedure TMyLabel.SetText(const Value: TCaption);
begin
  inherited;
  if (csDesigning in ComponentState) and StartsText('Label', Name) then
    Name := MakeValidName(Caption);
end;

Der schöne Günther 17. Dez 2015 10:35

AW: Komponente zur Designtime umbenennen
 
Ich hätte auch gedacht dass du genau das meinst was Stahli sagt. Geh in der .PAS auf die Variable und benenne die (mittels Strg+Shift+E bzw. Rechtsklick) um, der Rest geht von selbst.

Union 17. Dez 2015 11:04

AW: Komponente zur Designtime umbenennen
 
Er meint wohl eher den Bereich der Komponentenentwicklung. Da würde ich mir mal die GExperts oder die Konopka-Komponenten anschauen, denn dort ist es über OTA so realisiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:18 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