Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Anchor in nonVCL setzen (https://www.delphipraxis.net/67940-anchor-nonvcl-setzen.html)

Luckie 24. Apr 2006 12:40

Re: Anchor in nonVCL setzen
 
Zitat:

Zitat von himitsu
PS: hast du nicht zufällig ein paar nonVCL-Tuts über CheckBoxen und ComboBoxen?
vorallem meine ComboBox (CompLevel) ist überhaupt nicht so, wie sie sein soll :cry:

Logisch habe ich die. Müsste sogar eins der ersten Kapitel sein ín meinen Tutorials.

Nachtrag: Kann es sein, dass du deine Controlls unwissentlich auf eine Art Panel erzeugst, welches seine größe nicht ändert nur seine Position, deine Controlls sich aber damit natürlich nicht relativ zum Panel ändern?

Code:
+---------------+
|               |
| Panel 1       |
+---------------+
|               |
| Panel 2       |
|               |
| Dein Controll |
+---------------+
Wenn du nun den Dialog vergrößerst, ändert sich in wirklichkeit nur das obere Panel mit dem Liostview für die Dateien, das untere mit deinem Controll bleibt unverändert und es wirkt nur so, als ob deine Controlls und die anderen Controlls ihre Positioin anpassen würden entsprechend der Größenänderung.

himitsu 24. Apr 2006 13:02

Re: Anchor in nonVCL setzen
 
Wenn ich das wüßte, aber ein Panel müßte doch auch als Control (Window) müßte doch dann auch als DialogItem aufzufinden sein, oder nicht? (gefunden hab ich aber kein weideres Control)

Die Position laß ich so berechnen:
Delphi-Quellcode:
H := GetDlgItem(hWnd, 101);
GetWindowRect(H, a1);
GetWindowRect([b]GetParent(H)[/b], a2);
Form1.Caption := IntToStr(a1.Left - a2.Left) + ' ' + IntToStr(a1.Top - a2.Top);
Also das Edit relativ zu seinem Parent, welches aber definitiv (bin mir eigentlich sicher) die Form ist und worauf ich die Controls auch erstellt hab.

Und wenn da "nur" ein Panel wäre, dann sollten doch wohl die Buttons sich nicht nach rechts bewegen :gruebel:

teebee 24. Apr 2006 15:26

Re: Anchor in nonVCL setzen
 
Zumindest was das Aussehen Deiner Combobox angeht hätte ich was:
Delphi-Quellcode:
 H := CreateWindowExW(WS_EX_CLIENTEDGE, 'COMBOBOX', '', WS_VISIBLE or WS_CHILD or CBS_DROPDOWNLIST,
                  a4.Left, a3.Top + (a3.Top - a2.Top), a4.Right, a2.Bottom+1000, hWnd, 103, 0, nil);
Du brauchst einmal den DROPDOWNLIST-Stil und zum zweiten bezieht sich die Höhenangabe bei so einer ComboBox auf den ausgeklappten Zustand und ist dann quasi eine maximale Höhe. Die genaue Höhe könntest Du noch anhand der Anzahl Deiner Einträge ausrechnen.

Gruß, teebee

himitsu 24. Apr 2006 15:28

Re: Anchor in nonVCL setzen
 
Das mit der ComboBox wurde schon geändert ^^ (dank Luckie)

und die höhe ich jetzt das 11-fache der Dateiname-Edit-Höhe, da ich 10 Einträge hab ^^

himitsu 28. Apr 2006 11:32

Re: Anchor in nonVCL setzen
 
Hab nun auch noch die ganzen, welche man per GetWindowLong erhält durchsucht und nichts gefunden, also wird wohl irgendwie innerhalb der FensterPorzedur wo ich nicht rankomme alles neu angeordnet und nur das, was auch ursprünglich zum fenster gehört ... konnte da zumindestens keine Bits entdecken, welche das steuern würden :cry:

Bleibt mir wohl nur noch die möglichkeit diese Prozedur zu überschreiben und es wirklich alles selbst machen zu müssen -.-''

jim_raynor 28. Apr 2006 12:27

Re: Anchor in nonVCL setzen
 
Vielleicht werden die IDs ja für irgendwelche im Normalfall nicht sichtbaren Fenster gebraucht. Hast du denn schon mal andere Zufällige IDs probiert?

himitsu 28. Apr 2006 12:34

Re: Anchor in nonVCL setzen
 
Die IDs sind schon OK, denn wenn ich nichts anlege, dann sind diese IDs auch nicht belegt.

meine IDs und die belegten IDs, wobei bisher zwar dieser ID-Breich frei war:
Code:
100 » Passwort-Label
101 » Passwort-Edit
102 » CompLevel-Label
103 » CompLevel-ComboBox
Code:
0 » OpenDialog-ClientBereich
1 » Öffnen-Button
2 » Abbrechen-Button

1038 » Hilfe-Button
1040 » Schreibgeschützt-CheckBox
1088 » Control-Butons (at top-right)
1089 » Typ-Label
1090 » Dateiname-Label
1091 » SuchenIn-Label
1120 » Datei-ListBox
1136 » Typ-Edit
1137 » SuchenIn-ComboBox
[color=#ff0000]1148 oder 1152[/color] » Dateiname-Edit
1184 » PlacesBar
aber wie ich jetzt feststellen durfte, sind die anderen IDs nicht unbedingt fest ... siehe http://www.delphipraxis.net/internal...=540051#540051


Wie gesagt, hier funktioinert alles, nur daß es halt anscheinend keine Möglichkeit gibt, daß meine Controls von der selben Routine neu gruppiert werden, welche sich auch schon um die Originalcontrols kümmert :cry:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Seite 2 von 2     12   

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