Einzelnen Beitrag anzeigen

Benutzerbild von Minz3
Minz3

Registriert seit: 18. Jul 2019
Ort: Thüringen
48 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#11

AW: Mehrere Elemente schnell und effizient umbenennen

  Alt 30. Jul 2019, 15:30
Wie meinst du das mit der dynamischen Erzeugung? Per Code (Schleife)?
Genau. Dann kannst Du mit Konstanten die X,Y Koordinaten, die Grösse der Buttons usw. bestimmen. Ausserdem Anzahl Cols und Rows usw. Später ist dann auch eine Änderung mit wenig Aufwand möglich anstelle des Gefrickels mit Maus-Pfeiltasten.
Achja coole Sache. Das werde ich mir mal genauer anschauen!

Hallo Alex,
mit <ALT><F12> in den Quellcode der Properties gehen und Schen und Ersetzen verwenden: mittels <Srtrg><R> die vorhandnenen Einträge 'SpeedButton' gegen 'Aufgabe' tauschen.
Gruß, Andreas
Danke dir. Ging leider nicht ganz so einfach, da nach der Bezeichnung der Typ Folgt, welcher TSpeedButton heißt. Damit hätte ich dann AufgabeX : TAufgabeX
Hab es dann per Copy + Paste gelöst. Ging um einiges schneller, als über das Eigenschaftenfenster.
...
Sorry, ich hätte für Dich noch hinschreiben müssen, daß Du das Ersetzen selbstverständlich mit Einzelbestätigung machen sollst, schließlich war mein Vorschlag eine "Operation am offenen Herzen" des Objekts...
Natürlich sind die obigen Vorschläge der Kollegen professioneller und vor allem ohne Gefahr. Aber diese Erfahrung mit dem Suchen und Ersetzen alles auf "einen Schlag" wird Dir für die Zukunft eine nützliche Lehre darstellen, wovon Du an anderer Stelle bestimmt profitieren wirst.
Gruß, Andreas
Hehe, hab ich gemerkt, als ich daran gearbeitet hatte. Da es noch "relativ" übersichtlich war, ging es mit dieser Methode. Für das nächste Mal merke ich mir das.

Hallo Alex,
mit <ALT><F12> in den Quellcode der Properties gehen und Schen und Ersetzen verwenden: mittels <Srtrg><R> die vorhandnenen Einträge 'SpeedButton' gegen 'Aufgabe' tauschen.
Gruß, Andreas
Danke dir. Ging leider nicht ganz so einfach, da nach der Bezeichnung der Typ Folgt, welcher TSpeedButton heißt. Damit hätte ich dann AufgabeX : TAufgabeX
Hab es dann per Copy + Paste gelöst. Ging um einiges schneller, als über das Eigenschaftenfenster.
Zum einen gibt es noch die Option, die bei der Ersetzung jedesmal nachfragen zu lassen, dann kommt man evtl. mit den Tasten J/N im Wechseltakt schneller zum Ziel als mit Copy/Paste.
Zum anderen kann man sich hier auch noch mit RegEx weiterhelfen und nur ersetzten, wenn hinter dem zu ersetzenden Wort min. 1 Ziffer folgt.
Eventuell geht es in dem Fall auch, wenn man mit Alt-Mausbereichmarkieren nur eine Spaltenauswahl selektiert und darauf Suchen/Ersetzen loslässt.
Jup die Option hab ich mir für das nächste Mal vorgemerkt. ^^' Danke für den Hinweis!

Aber ich sehe auch keinen zeitlichen Vorteil, wenn ich nach dem Erstellen eines Elementes, gleich den Namen vergebe und diesen Vorgang 99x wiederhole, gegenüber alle Elemente zu duplizieren und dann umzubenennen. Oder ist mein Workflow etwas suboptimal?
Achso, du duplizierst gleich am Anfang alle Elemente, die du brauchst und willst dann systematisch umbenennen. Dabei ist dir der manuelle Aufwand im Anschluss zu groß. Ich hatte das etwas anders verstanden und dachte, dass du erst nach ein paar Tagen programmieren feststellst, dass du die mal langsam umbenennen musst.

Mir fällt kaum ein Fall ein, wo das für mich sinnvoll wäre, da die Bezeichner sprechend sein sollen. Aber ich glaube, ich würde in so einem Fall tatsächlich ein Miniprogramm schreiben, dass die Bezeichner in der DFM- und PAS-Datei nach meinen Vorstellungen umbenennt.
Ja hatte ich vergessen am Anfang zu schreiben. Sorry. ^^' Danke für den Tipp mit dem Hilfsprogramm. Ich werd mir bei Gelegenheit mal genaueres dazu anschauen.

Das Umbenennen von Komponenten hat natürlich noch mehr zu erledigen, als einfach nur den Komponentennamen zu ändern. Benutzt man dazu den Objekt-Inspektor wird nicht nur auch noch das Instanzfeld in der Klasse umbenannt, sondern auch alle zu der Komponente gehörenden Events (z.B. SpeedButton1Click). Was dann noch bleibt sind die Referenzen im Sourcecode und den Kommentaren, die ja weiterhin auf SpeedButton1 verweisen und ebenfalls angepasst werden müssen.
Das stimmt. Ich habe schon gemerkt, dass da einiges mehr dahintersteckt als einfach nur der Komponentenname. Zum Glück ist mir das am Anfang aufgefallen, somit standen noch keinerlei Prozeduren mit den Buttons. ^^

Danke Euch allen für die nützlichen Hinweise und Lösungsvorschläge!
Attention:
Brain.exe has stopped working. Reboot the system in 3... 2... 1... ... ... ... Attempt failed.
  Mit Zitat antworten Zitat