-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
16. Nov 2015
Wie positionierst du denn ein Formular auf dem zweiten Monitor? Du durchsuchst das Array Screen.Monitor. Ich tue das zwar auch, aber ich biete das durch den Enum TFormMonitor auch nach außen an, so dass man eben ohne zusätzliche Arbeit direkt auf den zweiten Monitor plazieren kann, allein durch den Aufruf von TFormEx.Show(fmSecondary).
Wo bietet denn die Unit Forms eine solche Funktionalität...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
16. Nov 2015
Ich meine nicht Unit sondern Klasse. Dass die Klasse in einer eigenen Unit steht, bietet sich logischerwese an, heißt aber erstmal nicht viel und könnte auch anders geregelt sein.
Ja klar, deswegen hab ich ja meine Klasse von TForm abgeleitet.
Ja, eben. Und dafür sind globale Variablen ungeeignet.
Ich kann meine Unit nehmen und - so wie sie ist - wiederverwenden. Beispiel: Ich erstelle...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
16. Nov 2015
Der Gag an meiner Variante ist die Kapselung in einer Klasse, die für sich den Kram macht und nur anhand der im Show/ShowModal übergebenen Parameter entscheidet, wo sie angezeigt werden soll. Dieser Code kann einfach wiederverwendet werden: Unit einbinden, Variable der Klasse deklarieren und lost geht's (vorausgesetzt, es existiert ein passendes DFM, denn sonst bekommt man nur die Fehlermeldung...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
15. Nov 2015
Dann lass mal hören. Vor allem würde mich interessieren, wie du das bei ShowModal machen würdest.
Nein, mir ging es in erster Linie um TC-Plugins, oder allgemeiner formuliert: in DLLs gelagerte VCL-Forms, die kein Application.Handle und vor allem kein Application.MainForm haben. Dass ich das später auch für reguläre Delphi-Anwendungen umgeschrieben habe, war mehr oder weniger nur Beiwerk....
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
15. Nov 2015
Nein, da fehlt kein Button. Ich hatte zwar mal einen drin, aber später dachte ich mir, dass der gar nicht nötig ist, denn auch TForm kennt ein OnClick-Ereignis - und genau bei diesem wird die Routine aktiv (eben beim Klick auf das leere Formular).
Na also macht es doch das, was es soll, denn ich schrieb ja: nacheinander wird das zweite Formular auf verschiedenen Monitoren angezeigt, ganz so,...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
13. Nov 2015
So, ich hab die Klassen TTotalCmdWfxForm und TFormEx nun besser voneinander getrennt, so dass man auch direkt von TFormEx ableiten kann, ohne dass WndParent durch den Aufruf von CreateParams gesetzt wird. Das heißt, die Klasse TFormEx ist nun prinzipiell auch für eigenständige Programme nutzbar. Ich kann aber keinerlei Aussage darüber treffen, ob das in dem Bereich auch für das erste/primäre...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
13. Nov 2015
Da ich für mein Plugin ein unicodefähiges Delphi brauchte, aber die Tests im alten Delphi einfach schneller gehen, hab ich irgendwann mal diese Include-Datei zusammengezimmert (IIRC hab ich dafür die Vorlage von jemand anders benutzt). Schwierig ist immer, herauszufinden, welches Delphi man im $IFDEF nun setzen muss, seit wann es ein Feature gibt oder ein Fehler korrigiert wurde...
Ich werde...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
13. Nov 2015
Nicht wirklich. Die Zeile darunter ist eine Platzhalterzeile, die noch mehr Sachen innerhalb der Klasse andeutet und durch das nachfolgende end; erst abgeschlossen wird.
Die kannst du dir notfalls selber bauen. Darin sind nur die verschiedenen Compiler-Versionen vermerkt mit entsprechenden $DEFINEs, damit der Compiler eine bedingte Kompilierung machen kann.
Alles Folgefehler des einen, kein...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
12. Nov 2015
Ja, sorry, das kommt von zuviel Copy'n'Paste meinerseits....
Sicher. Gestern habe ich daraus eine Klasse mit erweiterten Methoden gebastelt. Da das etwas mehr als nur ein paar Funktionen sind, hänge ich mal die komplette Unit an. Ich hoffe, da sind nicht allzu grobe Schnitzer drin :cyclops:.
Benutzung der Klasse dann z.B. so:uses ..., TotalCmdGUI;
type
TfmSvcProperties =...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
8. Nov 2015
Ich wollte eigentlich auf etwas anderes hinaus: Wenn ich mich an ein Event (OnActivate, OnShow) hänge, das von außen gesetzt werden kann - entweder im Objektinspektor oder im Code - wird der Code zur Plazierung des Forms nicht ausgeführt, und zwar ohne, dass es eine Warnung gibt oder sonstwas.
Daher habe ich etwas tiefer gegraben und bin fündig geworden:TTotalCmdWfxForm = class(TForm)
...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
7. Nov 2015
Tut mir leid, dass ich so lange nichts von mir hören ließ. Es war zuviel Arbeit, und da musste sich dieses Privatprojekt hinten anstellen.
Heute kam ich wieder dazu, mich damit zu beschäftigen. Zuerst eine Korrektur: Es ist wohl anders als ich bisher annahm, dass die Forms nicht immer auf dem linken Monitor dargestellt werden sondern immer auf dem primären; ich hoffe, das ist diesmal richtig,...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
8. Aug 2015
TForm.Position steht auf poOwnerFormCenter. poScreenCenter hab ich ebenfalls probiert, aber das ändert nichts. Auch poMainFormCenter bringt nichts, weil es keine MainForm gibt (Application.MainForm ist nicht zugewiesen, also vermutlich nil).
MfG Dalai
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Dalai,
8. Aug 2015
Hallo Leute,
hier ist schon wieder der ohne Lama :mrgreen:.
Vorgestern ist mir eine Sache in meinen Total Commander Plugins aufgefallen: Die Positionierung der Formulare ist falsch, wenn sie in einer Multimonitorumgebung benutzt werden. Es werden alle davon auf dem linken Monitor plaziert, und zwar unabhängig davon, welcher der primäre Monitor ist. Interessanterweise trifft das nur auf das...