Peter Below schrieb:
>>
>> Leider begreife ich die Werte von HorzScrollBar bzw. VertScrollBar
>> nicht so richtig. In letzterer ist die "Range" defaultmäßig 437, in
>> der "Horz" dagegen 0. Muss man da von Hand was reinschreiben, oder
>> gehen all diese Scrollbarparameter automagisch?
>
> Eigentlich sollte das schon automatisch gehen.
Ich hab mal probiert, bei "Margin" was von 0 verschiedenes reinzu-
schreiben. Nach meinem Verständnis ist das dafür da, dass dann auto-
matisch ein Scrollbalken angezeigt wird, wenn ein Control weniger
als "Margin" Pixel vom Rand der Form entfernt ist. Im Real Life
wird dann allerdings zwischen dem oberen und dem unteren Panel
eben dieser "Margin" als Leerraum eingefügt, und/oder das untere
Panel kriegt dann plötzlich eine "Height" in Höhe von "Margin".
Das ist alles irgendwie seltsam...
Wobei ich möglicherweise noch einen Fehler meinerseits gefunden
habe: Das obere Panel hatte Align=alTop und das untere alBottom.
In der Doku zum Splitter habe ich allerdings gelesen, dass das
"letzte" Panel immer alClient (und eben nicht alBottom - bzw.
alRight, wenns horizontale Panels sind) haben muss. Habe das
mal geändert (allerdings noch keine Rückmeldung von den betrof-
fenen Anwendern).
> Ach, Delphi 7. Da gab's noch kein Padding, ALignWithMargins, und
> Margins für Layout.
Ich hatte mir seinerzeit noch BDS 2006 gekauft, bin aber nie so
richtig damit warm geworden... und seitdem keine Updates, wegen
"nicht-nötig" und "64-bit-Anwendungen-kann-man-immer-noch-nicht-
erzeugen" (letzteres geht mit den aktuellen Delphis wohl, aber
nachdem ich nun eine größere Update-Lücke habe, müsste ich das
für mehrere KiloEuro neu kaufen - da ist der Leidensdruck noch
nicht groß genug).
Für Neuentwicklungen würde ich heute vermutlich eh Visual Studio
Express verwenden (vermutlich Basic, ich bin kein C-Freund), da
gibts alle zwei Jahre eine aktuelle Version (auch noch für kost-
nix), die außerdem stets zur jeweils aktuellen Windows-Version
passt. Da gibts zwar keinen Pascal-Compiler, aber diese Kröte
würde ich schlucken, wenn das EXE nachher auf allen Auflösungen/
Vergrößerungen/etc. problemlos laufen würde...
> Das Problem mit Anchors ist, dass sie quasi einen Referenzpunkt für
> Position und Größe des jeweiligen Controls brauchen. Das ist die
> Position des Controls nach dem Laden des Forms aus der DFM-Resource. Da
> gibt es aber wohl einen Konflikt mit dem Scaling.
Ja, sieht so aus. Die Mehrzahl der Probleme scheint bei 1280x1024
aufzutreten, aber wenn ich das hier selber mal einstelle, geht bei
mir seltsamerweise alles. Einen Problemfall hatte ich aber auch
schon mit 1920x1080 (und einer Vergrößerung von 175%, die aber
hier bei mir testweise auch schon funktioniert hat). Ich selber
habe 1920x1200 mit einer Vergrößerung von 150%. Vielleicht sollte
ich die IDE zum Compilieren mal mit 100% laufen lassen?!
> Ich kann Dir da leider keine wirkliche Hilfe geben. Manchmal
> funktioniert es wirklich am besten, wenn man einfach das Layout in Code
> korrigiert (OnCreate event), wenn das Scaling es verhunzt hat.
Reicht das beim OnCreate, oder muss man das nach jedem OnResize
machen?
Wie würde man das prüfen bzw. korrigieren? Auf Anhieb fiele mir
da z.B. ein
if ButtonOk.Top>FormDings.Height then // Ok-Button ist unterhalb der Form
ButtonOk.Top:=FormDings.Height-ButtonOk.Height-24;
also den Ok-Button manuell so weit nach oben positionieren, dass
seine Unterkante 24 Pixel Abstand zum unteren Form-Rand hat? Bzw.
vermutlich eher ClientHeight statt Height.
Blöd, wenn ich das hier dann nicht ausprobieren kann... :-( Na gut,
das manuelle Setzen würde dann auch hier funktionieren. Aber müsste
ich dann diese "24" aus dem obigen Beispiel nicht noch irgendwie
mit Screen.PixelsPerInch anpassen oder so?! Oder eher mit der "Ver-
größerung" aus Windows "Bildschirm anpassen"? Aber kriegt man die
in Delphi überhaupt? Jetzt krieg' ich langsam einen Knoten ins Hirn...
> Borland hat da leider seinerzeit (Delphi 1) die Entscheidung getroffen,
> all Positionen und Größen für Controls und Fonts in device units
> anzugeben und nicht (wie VB) in device independent units (twips). Das
> war sicher sehr gut für performance und vereinfachte das Interface mit
> dem API für die VCL, aber es ist mittlerweile ein massives Problem
> geworden, seit Windows mit x verschiedenen DPI Werten aufwarten kann.
Ja, früher hatte ich solche Probleme eigentlich nie. Das hat alles
erst in den letzten Monaten angefangen...
Gruß Matthias.