Miałem napisać wcześniej, ale dostałem telefon i godzinka pękła… ;)
Pisałem aplikacje przy użyciu 3 monitorów. Odłączyłem je i mam teraz teraz jeden, wbudowany. Niestety jak odpalam program do wyświetlany jest poza ekranem, tak jakby na tym, który jest odłączony.
Zwróć uwagę na dwie rzeczy (tak na przyszłość):
- Odłączenie monitora nie powoduje zmiany obszaru pulpitu – pulpit nadal ma rozmiar zgodny z sumą obszarów wszystkich ekranów, więc możliwe jest przesunięcie okna na obszar odłączonego monitora.
- System nie pozwoli wyświetlić okna w całości poza obszarem pulpitu – w takiej sytuacji pozycja okna zostanie zmieniona przez system.
Jak i gdzie aplikacja w Lazarusie ustala gdzie ma się wyświetlić?
To już sobie znalazłeś – menu Window, opcja Center a lost window.
Przy okazji – nie wiem ilu użytkowników Lazarusa ma ustawiony polski język interfejsu, ale zmień go na angielski. Raz że i tak ten język znasz, a dwa – w razie pytań na forach każdy będzie mógł pomóc. Ja używam agielskiego, więc takie też nazwy będę podawał.
Czy framework Lazarusa gdzieś te koordynaty zapisuje?
Framework to złe słowo. W każdym razie pozycje wszystkich okien środowiska zapisane są w plikach konfiguracyjnych w formacie XML, znajdujących się w katalogu użytkownika.
Natomiast pozycje okien należących do Twojego projektu zapisane są w plikach .lfm – standardowo. Do tych danych masz dostęp z poziomu okna Inspektora Obiektów, choć oczywiście możesz te dane edytować ręcznie, w dowolnym edytorze tekstowym.
Generalnie wiele okien Lazarusa nie tylko aplikacji uciekło mi poza ekran - np. okna formularzy - jak je przywołać do porządku by stawiły się na ekranie który mam podłączony?
W takim przypadku masz dwa rozwiązania – albo odpiąć nieużywane monitory od peceta i zresetować system, tak aby rozmiar pulpitu został przeliczony na nowo (bez uwzględnienia nieużywanych ekranów), albo skorzystać z opcji środowiska i te okna sobie wyśrodkować.
Pierwsza opcja spowoduje, że po włączeniu IDE i próbie wyświetlenia jego okien poza obszarem pulpitu, system zmieni ich pozycję i wszystkie zostaną wyplute na główny ekran.