Forum: Programmieren allgemein
by Zacherl,
19. Apr 2018
Also ich hab mir grade mal ein Testprogramm geschrieben und da funktioniert alles wie es soll. Muss ein Problem bei der Verarbeitung (Ini, etc.) vorliegen:
uses
Clipbrd;
procedure TForm2.Button1Click(Sender: TObject);
var
S: String;
begin
S := Left.ToString + ',' + Top.ToString + ',' + Width.ToString + ',' + Height.ToString;
Clipboard.AsText := S;
Forum: Programmieren allgemein
by Zacherl,
19. Apr 2018
Mein Fehler, falsch gelesen.
Was genau funktioniert beim Laden denn nicht? Die Positionen sind falsch?
Forum: Programmieren allgemein
by Zacherl,
19. Apr 2018
Lass das ganze Gedöhns mit dem Screen einfach weg :P Einfach nur X, Y, Width, Height speichern und 1 zu 1 wieder laden. Auf dem richtigen Monitor landet das Fenster dann automatisch.
Forum: Programmieren allgemein
by Zacherl,
19. Apr 2018
Ich würde einfach X und Y vom Fenster speichern. Diese Koordinaten beziehen sich eh auf den kompletten Desktop. Also links vom primären Bildschirm sind die (X-)Koordinaten negativ.
Edit:
Du hast grade editiert. So wie du es machst, sollte es "automatisch" schon passen :)
Forum: Programmieren allgemein
by Zacherl,
19. Apr 2018
Mir wäre nicht bekannt, dass man eine Art "id" des Monitors abfragen kann. Der Desktop ist ein Bereich, der zusammengesetzt wird aus Höhe und Breite aller Monitore. Die Anordnung kann deshalb ja z.B. in der Windows Systemsteuerung explizit angegeben werden. Wenn sich hier etwas ändert wären gespeicherte Positionen natürlich hinfällig (aber mal ehrlich, wie oft kommt sowas vor?). Zut Not kann man...