Bei Delphi konnte man die Breite des Arbeitsbereichs auf dem Desktop (also abzüglich möglicher Taskleiste) mit Screen.WorkAreaWidth bzw die Höhe mit Screen.WorkAreaHeight ermitteln.
Bei Lazarus habe ich die Eigenschaften Screen.Width (bzw. Height) und Screen.DesktopWidth (bzw. Height) gefunden. Liefern beide aber die gleichen Werte
Wenn ich Form.Width auf Screen.Width (bzw. DesktopWidth) stelle ist die Form ein paar Pixel zu breit
Form.Align := alTop funktioniert auch nicht
Interessante Frage. Weitere (nicht wirklich zielführende) Überlegung: Ein maximiertes Fenster ist ja auch nicht immer so breit, wie es maximal werden kann. Ich benutze Windows, habe die Taskleiste links und rechts den Messenger Miranda angedockt. Dadurch positioniert sich ein maximiertes Fenster genau dazwischen, manuell könnte man es aber von der Taskleiste bis ganz nach rechts (bis über Miranda) vergrößern.
Desweiteren ist ein maximiertes Fenster immernoch um den äußeren Rahmen größer als die Größe dessen, was du wahrscheinlich als WorkArea bezeichnest (in meinem Falls von der Taskleiste bis zu Miranda).
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
Unter Delphi war der äußere Rand des Fensterrahmens mit der Workarea abschließend. Man sah also das komplette Fenster, jedoch keinen px mehr.
Unter Lazarus bekomm ich das leider nicht hin
Mal schauen. Vielleicht find ich ja noch ne Möglichkeit. Oder jemand, der diesen Thread hier liest
Ich hab vor einiger Zeit mal eine Form an eine andere andocken wollen, damals ist mir noch nicht mal gelungen die äußeren Abmaße der Form (also incl. Betriebssystemrahmen) in Erfahrung zu bringen. Das war allerdings glaube ich noch Lazarus 0.9.25...
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
Florian hat geschrieben:Bei Delphi konnte man die Breite des Arbeitsbereichs auf dem Desktop (also abzüglich möglicher Taskleiste) mit Screen.WorkAreaWidth bzw die Höhe mit Screen.WorkAreaHeight ermitteln.
Bei Lazarus habe ich die Eigenschaften Screen.Width (bzw. Height) und Screen.DesktopWidth (bzw. Height) gefunden. Liefern beide aber die gleichen Werte
Wenn ich Form.Width auf Screen.Width (bzw. DesktopWidth) stelle ist die Form ein paar Pixel zu breit
DesktopWidth ist eigentlich unbrauchbar, weil der Desktop sich über mehr als einen Monitor erstrecken kann. Mit der WorkAreaWidth bist du schon richtig, Delphi holt sich das aus der Win-API:
Kein Wunder, die Funktion SystemParametersInfo liefert ja auch ein Boolean zurück und keinen Integer. Du brauchst den Rückgabewert überhaupt nicht (es sei denn, du machst noch eine Überprüfung, ob es einen Fehler gab), du musst das Rechteck auswerten:
Kein Wunder, die Funktion SystemParametersInfo liefert ja auch ein Boolean zurück und keinen Integer. Du brauchst den Rückgabewert überhaupt nicht (es sei denn, du machst noch eine Überprüfung, ob es einen Fehler gab), du musst das Rechteck auswerten:
Da ich jetzt eine halbe Stunde nach einer Lösung gesucht habe und nachfolgende Leser dies evtl. auch interessiert, hier die Lösung, wie es bei mir funktioniert (Windows 7 64bit, Lazarus 1.5, Klassic und Aero Theme):