Wie Bekomme ich den Brauchbare Koordinaten auf dem Bildschirm in Delphi

Mit Bildschirm.DesktopHeight und Bildschirm.DesktopWidth, ich kann die Größe der "virtuellen" desktop und ich glaube, das funktioniert für einen oder mehrere Monitore.

Ich Speichere die position (top und left) und Größe (Höhe und Breite) meine Anwendung in die registry, wenn es sich schließt. Wenn es öffnet, ich will, um sicherzustellen, dass es vollständig sichtbar, da Sie möglicherweise verschoben wurden, teilweise außerhalb des sichtbaren Bereichs, oder die Bildschirmgröße geändert haben, zum Beispiel über den Bildschirm-Einstellungen oder entfernen eines Monitors.

Kann ich im Grunde tun Sie es mit diesem code:

if MyForm.Width > screen.DesktopWidth then 
  MyForm.Width := screen.DesktopWidth;

if MyForm.Height > screen.DesktopHeight then 
  MyForm.Height := screen.DesktopHeight;

if (MyForm.Left + MyForm.Width) > screen.DesktopWidth then 
  MyForm.Left := screen.DesktopWidth - MyForm.Width;
if MyForm.Left < 0 then MyForm.Left := 0;

if (MyForm.Top + LogoAppForm.Height) > screen.DesktopHeight then 
  MyForm.Top := screen.DesktopHeight - LogoAppForm.Height;
if MyForm.Top < 0 then MyFormTop := 0;

Dies funktioniert okay, außer dass es berücksichtigt nicht die Taskleiste, die ist in der Regel (aber nicht immer) am unteren Rand des Desktops. Also, wenn die Taskleiste ist in der Art und Weise meiner Anwendung Fenster, meine Anwendung bekommt verdeckt.

Wie kann ich die nutzbar-Lage und-Größe die Einstellungen des Bildschirms, schließen Sie den Speicherort der Taskleiste?

InformationsquelleAutor lkessler | 2009-09-15
Schreibe einen Kommentar