Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Komponenten verschieben (https://www.delphipraxis.net/169369-komponenten-verschieben.html)

VkPenguin 15. Jul 2012 19:26

Komponenten verschieben
 
(Das Thema bezieht sich auf das hier bereits angesprochene Programm)

Hallo zusammen,
ich komme mit meinem kleinen Programm sehr gut voran, es ist zwar immer noch nicht ganz da, wo ich es gerne hätte, ich bin dem aber schon deutlich näher gekommen. Im laufe der Zeit hat sich mein Programm und daher auch die Einstellungsmöglichkeiten der Parameter derart vergrößert, dass die Einstellungen nicht mehr auf meine Form passen, ich bräuchte also eine spezielle Form dafür. Meine Frage nun (ich habe vorher noch nie mit VCL gearbeitet und kenne mich daher leider nicht so aus ): Gibt es eine Möglichkeit, alle Buttons etc. auf die neue Einstellungsform zu verschieben, so als wenn ich sie auf der Hauptform an einen anderen Platz verschieben würde? Ich würde ungern alle noch einmal neu schreiben.

Ich hatte es zuerst versucht, indem ich die Einstellungen wie ein eigenständiges Programm behandele, aber dann muss ich all die Parameter hin und her übertragen, was ich sehr umständlich finde. Kennt jemand einen Weg, wie ich es besser machen könnte ?

Vielen Dank schoneinmal für Eure Hilfe!

sx2008 15. Jul 2012 19:36

AW: Komponenten verschieben
 
Die einfachste Lösung für dein Problem wäre wohl ein PageControl mit mehreren Seiten.
Damit wären alle Controls und aller Code immer noch auf dem gleichen Formular.
Der Benutzer (und auch der Programmierer) kann aber einfach die Seiten im PageControl wechseln.
Ich kenne dein Programm nicht aber ich könnte mir vorstellen, dass es 3 Seiten gibt:
* Orginalbild
* Grafikausgabe
* Einstellungen

borstenei 15. Jul 2012 20:44

AW: Komponenten verschieben
 
Komponente anklicken, rechte Maustaste Bearbeiten/kopieren jetzt zum gewünschten Formular gehen wieder rechte Maustaste Bearbeiten/Einfügen
und schon steht die Komponenten der Form zur Verfügung. Das ganze funktioniert auch projektübergreifend....

himitsu 15. Jul 2012 21:54

AW: Komponenten verschieben
 
Beim Kopieren auf eine andere Form, werden natürlich nur die Komponenten verschoben, aber nicht die angehängten Events (Quellcodes).

Beim Kopieren innerhalb einer Form bleiben die Events aber vorhanden.

Lösungswege:

- Komponenten kopieren und dann die Events überall erneut anhängen und dort den Quellcode jeweils reinkopieren.

- Erst die Event-Methoden (Quellcode) kopieren. Wenn dann die Komponenten kopiert werden und wenn dabei gleichnamige Methoden in der Form gefundenwerden, dann werden sie auch gleich mit verbunden.

- Hätte man vorher OOP-mäßiger programmiert und den Arbeitscode von der GUI getrennt, also in ensprechende Klassen ausgelagert, dann hätte man nun weniger Arbeit, beim Umbau der GUI. :stupid:

VkPenguin 15. Jul 2012 22:46

AW: Komponenten verschieben
 
Nabend nocheinmal,

danke für Eure Antworten!

Zitat:

Hätte man vorher OOP-mäßiger programmiert und den Arbeitscode von der GUI getrennt, also in ensprechende Klassen ausgelagert, dann hätte man nun weniger Arbeit, beim Umbau der GUI.
Tja, da hast Du wohl recht. Immerhin, dadurch lernt man, es nächstes mal (hoffentlich) besser zu machen :)

@sx2008: Das ist scheinbar genau das, was ich mir vorgestellt hab. Allerdings komme ich damit noch nicht so ganz zurecht. Habe eben mal ein bisschen rumprobiert und dann im Internet gesucht, ich dachte man könnte die Komponenten auf eine Seite einfach hinzufügen wie hier beschrieben.. Aber das funktionier aus irgendeinem Grund noch nicht. Wenn ich z.B. einen Button auf eines meiner beiden Tabsheets ziehe ist der Button auf dem Formular, dass darunter liegt und nicht in dem Tabsheet eingebettet. Wenn ich das Tabsheet also verschiebe o.ä. bleibt der Button einfach. Ich stehe glaube ich auf dem Schlauch, wie funktioniert denn das?? :roll:

himitsu 15. Jul 2012 22:54

AW: Komponenten verschieben
 
Beim "Verschieben" änderst du nur die X- und Y-Koordinate der Komponente (Left und Top),
aber nicht den Parent.

- Komponente markieren
- Ausschreiden (Strg+X)
- TabSheet (neuen Parent) selektieren
- Einfügen (Strg+V)

VkPenguin 15. Jul 2012 23:51

AW: Komponenten verschieben
 
Ahh, da hätte ich eigentlich auch drauf kommen müssen :oops:

Danke aber, jetzt funktioniert es perfekt!

Nurnoch kurz: Gibt es einen einfachen weg, die Tabs Aufblinken oder die Farbe wechseln zu lassen? Wenn nicht ist es auch nicht so wichtig, wäre aber Benutzerfreundlicher :)

Jumpy 16. Jul 2012 08:21

AW: Komponenten verschieben
 
Nur der Vollständigkeit halber. Es gibt auch noch das Fenster Objekt-Hierarchie, da kann man Komponenten innerhalb der Baumstruktur per Drag and Drop von einem Parent zum nächsten schieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz