Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Formular ohne VCL (https://www.delphipraxis.net/162995-formular-ohne-vcl.html)

Union 12. Sep 2011 14:36

AW: Formular ohne VCL
 
Ja, der Owner und Parent der Scrollbox muss MyForm sein.

Medium 12. Sep 2011 14:47

AW: Formular ohne VCL
 
Wobei der Owner es nicht sein muss, aber es macht Sinn :) (Im Normalfall zumindest, so generell kann ich das nicht stehen lassen.)

FriendOfDelphi 13. Sep 2011 11:36

AW: Formular ohne VCL
 
Das war die Lösung. :-D
Vielen Dank an die Cummunity für die Hilfe und Unterstützung.

CCRDude 13. Sep 2011 13:56

AW: Formular ohne VCL
 
Zitat:

Zitat von Neutral General (Beitrag 1123599)
Non-VCL bedeutet du erstellt alle Fenster, Buttons usw. mit MSDN-Library durchsuchenCreateWindow oder MSDN-Library durchsuchenCreateWindowEx.

Ohne Klugscheißen zu wollen, würde ich das eher als die Ausnahme bezeichnen. Der übliche Non-VCL-Weg wären doch MSDN-Library durchsuchenDialogBox-Aufrufe für entsprechende Dialog-Resourcen?

Sir Rufo 14. Sep 2011 00:35

AW: Formular ohne VCL
 
Zitat:

Zitat von CCRDude (Beitrag 1123998)
Zitat:

Zitat von Neutral General (Beitrag 1123599)
Non-VCL bedeutet du erstellt alle Fenster, Buttons usw. mit MSDN-Library durchsuchenCreateWindow oder MSDN-Library durchsuchenCreateWindowEx.

Ohne Klugscheißen zu wollen, würde ich das eher als die Ausnahme bezeichnen. Der übliche Non-VCL-Weg wären doch MSDN-Library durchsuchenDialogBox-Aufrufe für entsprechende Dialog-Resourcen?

Wer sprach denn hier von Dialogboxen? Es ging doch nur ganz allgemein darum den Unterschied zwischen VCL und nonVCL aufzuzeigen am Beispiel von TForm (dachte ich zumindest)

CCRDude 14. Sep 2011 08:14

AW: Formular ohne VCL
 
Ich denke das ist eine Frage der Begrifflichkeit. Der Delphi-Programmierer denkt bei "Dialogbox" vermutlich zuerst an "Wollen Sie die Datei löschen? [Ja] [Nein]"-Fenster. In der Windows API aber nennt sich "Dialog", was sich unter Delphi "Form" nennt - beides sind, um ein anderes Wort zu verwenden, Fenster :)

Insofern ist eine "Dialogbox" bzw. ein "Dialog" in nonVCL halt tatsächlich das, was eine "TForm" in VCL ist.

Sir Rufo 14. Sep 2011 08:21

AW: Formular ohne VCL
 
Zitat:

Zitat von CCRDude (Beitrag 1124199)
Insofern ist eine "Dialogbox" bzw. ein "Dialog" in nonVCL halt tatsächlich das, was eine "TForm" in VCL ist.

Nein, ein Dialog ist modales Window und ein Window ist das nonVCL Gegenstück zum TForm.

CCRDude 14. Sep 2011 13:39

AW: Formular ohne VCL
 
Hmmm... aber TForm kann doch sowohl modal als auch nicht modal sein, abhängig davon, wie es aufgerufen wird, insofern macht das Argument "modal" doch wenig Sinn?

Dazu kommt, daß TForm sicherlich hauptsächlich modal eingesetzt wird - jede Anwendung fängt mit ihrem Hauptfenster mit einem modalen Fenster (TForm!) an, erst danach können nichtmodale Fenster ins Spiel kommen.

Genauso kann zugegeben TForm sowohl zur Designzeit als auch zur Laufzeit erstellt werden; aber wenn man auf die Ebene der VCL geht, wird es wohl immer zur Laufzeit erstellt. Sogesehen ist der Vergleich mit CreateWindow wohl passend. Nur wenn man die Anwendungsebene (die Anwendung durch den Entwickler ist hier gemeint) vergleicht, verwendet man halt üblicherweise zur Designzeit entwickelte Fenster, und die entsprechen eben RT_DIALOG-Resourcen, und nicht CreateWindow-Aufrufen.

Um Dir aber mal mit Dokumentation im Rücken zu widersprechen:
Zitat:

CreateDialogIndirect function
Creates a modeless dialog box from a dialog box template in memory.
Dort nennt die MSDN ein nicht-modales Fenster "dialog box", auch der Funktionsnamen trägt das "Dialog" in sich.

Du darfst mir natürlich gerne widersprechen, und ich lerne auch gerne noch dazu, aber kannst Du Dein Nein irgendwie ähnlich belegen?

turboPASCAL 14. Sep 2011 22:48

AW: Formular ohne VCL
 
Liste der Anhänge anzeigen (Anzahl: 1)
Och Kinders,

auch ein RT_DIALOG-Resourcen ruft intern, also in der API CreateWindow... auf.

Ein Dialog ist auch nur ein Fenster und ein Fenster kann auch ein Dialog sein. :stupid:
Ob nun VCL oder nonVCL das ist alles Einstellungssache.

CCRDude 15. Sep 2011 07:38

AW: Formular ohne VCL
 
Natürlich tut es das, steht direkt oben unter meinem MSDN-Library durchsuchenDialogBox-Link drin :)

Weil mich Sir Rufo nochmal arrogant süffisant lächend per PM angegangen ist, möchte ich hier nochmal klarstellen, und entschuldige mich gleichzeitig für das Herumreiten darauf:

1. Im Rahmen der Windows-API (auf die ich mich beziehe) ist ein Window ein Fenster, und ein Dialog ein aus einer Resource erstelltes Fenster. Dort ist die Unterscheidung quasi bei dynamisches vs. statischen Fenstern (statisch insofern, als das Aussehen schon festgelegt ist und nicht per Code erzeugt wird).

2. Auf Benutzer-/Entwickler-Ebene (auf der Sir Rufo argumentiert) wird der Begriff Dialog üblicherweise für modale Fenster verwendet. Dort ist die Unterscheidung zwischen modalen vs. nicht-modalen Fenstern.

Ich dachte, das hätte ich in Post #16 klar gemacht, aber offensichtlich nicht klar genug.

Und wenn ich geschrieben habe, daß ein "Dialog" in nonVCL das ist, was eine TForm in VCL ist, ist das natürlich eigentlich schlecht geschrieben, weil ich die Bezeichnungen für nonVCL auf Ebene 1 und VCL auf Ebene 2 wähle, und das in einem Satz.

Um es auf Resourcenebene zu vergleichen: die TForm, die in VCL eine Resource vom Typ RT_RCDATA ist und vom VCL-DFM-Loader erstellt wird, ist in nonVCL eine Resource vom Typ RT_DIALOG und wird von den *Dialog*-Funktionen erstellt (die - intern - etwa CreateWindowEx aufrufen).

Arbeitet man ohne Resourcen, bleibt man in VCL bei der Form, wechselt in nonVCL aber tatsächlich auf CreateWindowEx.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 Uhr.
Seite 2 von 3     12 3      

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