| Autor |
Beitrag |
Blob
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 06.12.11 19:49
Huhu,
im Rahmen des Informatikunterrichts an meiner Schule arbeiten wir mit Delphi 7.
Da mir langweilig war und alle Aufgaben gelöst hatte, bekam ich die Extraaufgabe, eine Art
"MiniPaint" zu erstellen.
Mein Plan war es, das ganze wie GIMP aufzubauen: Ein Hauptformular zum Zeichnen und ein
langgestrecktes Fenster rechts daneben (!) als "Werkzeugliste".
Da ist auch schon das Problem: Wenn ich das Hauptformular als MDI-Parent deklariere,
erscheint das Werkzeug-Fenster als MDI-Child permanent im Hauptfenster, und natürlich auch in einer völlig
inakzeptablen Skalierung.
Wie kann ich das MDI-Child außerhalb des Hauptfensters platzieren?
Gruß,
Blob
|
|
jaenicke
      
Beiträge: 19340
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 06.12.11 20:03
Hallo und
Ein MDI-Child benutzt man genau um diesen Effekt zu haben. Wenn du das gar nicht willst, benutze einfach kein MDI-Child bzw. MDI-Parent.
Nebenbei würde ich das als Toolwindow erstellen (BorderStyle bei dem Toolwindow auf bsToolWindow). Dann sieht es aus wie bei Paint.NET (was ich für GUI-Design bzw. Ergonomie auch für ein besseres Vorbild halte als ausgerechnet Gimp).
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Di 06.12.11 20:08
wie Jaenicke schon erwähnte ......
mit einem kleinen Trick kannst Du es aber trotzdem tun (sinnvoll ist es sicher nicht)
Delphi-Quelltext 1:
| Windows.Setparent(MDICHildFormName.Handle,0) |
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Blob 
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 06.12.11 20:12
@ jaenicke: Achso, ich dachte das sei der Sinn von MDI-Anwendungen
Wie kann ich das zweite Formular denn dann aufrufen? Ich habe versucht, das zweite Formular im "Form.Create" vom Hauptfenster mit "Form2.Show" aufzurufen, resultiert aber in einer Fehlermeldung.
@ bummi: Wo genau kommt das hin?
|
|
jaenicke
      
Beiträge: 19340
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 06.12.11 20:52
Blob hat folgendes geschrieben : | | Wie kann ich das zweite Formular denn dann aufrufen? Ich habe versucht, das zweite Formular im "Form.Create" vom Hauptfenster mit "Form2.Show" aufzurufen, resultiert aber in einer Fehlermeldung. |
Erstelle das Formular dort manuell, dann geht das auch. Oder zeige es erst in OnShow an.
Standardmäßig erstellt Delphi die Formulare der Reihe nach automatisch. Das zweite ist dann aber beim Erstellen des ersten (OnCreate eben) noch gar nicht erstellt. 
|
|
Blob 
Hält's aus hier
Beiträge: 5
|
Verfasst: Di 06.12.11 21:05
Super, danke euch, das mit den beiden Fenstern habe ich jetzt hinbekommen.
Nun tut sich ein weiteres Problem auf: Ich habe, um die ColorBox zu testen, beim Mausklick im Hauptfenster (beinhaltet ein TImage) Quadrate erzeugt.
Diese Quadrate werden allerdings erst angezeigt, sobald ich das Fenster minimiere und dann maximiere.
Was kann ich dagegen machen?
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Di 06.12.11 21:29
| Zitat: | | Nun tut sich ein weiteres Problem auf: Ich habe, um die ColorBox zu testen, beim Mausklick im Hauptfenster (beinhaltet ein TImage) Quadrate erzeugt. |
 wo, wie, was ?
...ein klein wenig mehr Detailinformationen wären schon hilfreich. (Quelltext etc.)
|
|