Początkowa pozycja okna w aplikacji napisanej w Lazarusie.

0

Cześć.

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. Jak i gdzie aplikacja w Lazarusie ustala gdzie ma się wyświetlić? Czy framework Lazarusa gdzieś te koordynaty zapisuje?

0

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?

0

Ok znalazłem jak wyśrodkować zagubione okna edytora formularza. Niestety nie wiem jeszcze jak aplikacja zapisuje pozycje form, więc prosił bym jeszcze o pomoc.

title

2

Ok, trzeba zmienić właściwość formularza "DefaultMonitor", oraz "Position", żeby ustalić ekran oraz miejsce gdzie ma się forma pojawić, nawet nowa kolejna potomna etc.

0

Miałem napisać wcześniej, ale dostałem telefon i godzinka pękła… ;)

somedev napisał(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ść):

  1. 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.
  2. 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.


somedev napisał(a):

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.

0
furious programming napisał(a):

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ł.

Ja z kolei preferuje język polski, dlatego go używam ;) Uprzedzając - nie będę wchodził w dyskusję na temat używania języka angielskiego - od ponad dekady jestem w branży i widziałem już sporo, tak jak i znam wszystkie zalety i wady każdego z podejść. Na forach angielskich piszę po angielsku, na polskich po polsku. Jestem w Polsce, mam komputer z polskojęzycznym systemem i Polacy używają tego komputera (w zasadzie tylko ja ;) ). Nie oczekuje akceptacji, ale chociaż tolerancję ;)

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.

Dzięki wielkie!

somedev napisał(a):

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.

Hmmm przysiągł bym, że tak nie jest, gdyż jak otworzyłem dziś laptopa po wypięciu ze stacji dokującej, to się aktualizował - więc siłą rzeczy musiał iść reboot (W10). Jutro jak będę w biurze to zweryfikuję tą hipotezę.

0
somedev napisał(a):

Ja z kolei preferuje język polski, dlatego go używam ;) […] Nie oczekuje akceptacji, ale chociaż tolerancję ;)

Jeśli tak wolisz to nie widzę problemu. Tutaj miałem na myśli to, że wszelkie przydatne informacje znajdziesz właśnie po angielsku (np. wiki z instrukcją obsługi IDE, zawierającą opis wszystkich opcji), no i sam zawsze podaję nazwy oryginalne, tak aby uniknąć błędów/idiotyzmów w tłumaczeniach.

Hmmm przysiągł bym, że tak nie jest, gdyż jak otworzyłem dziś laptopa po wypięciu ze stacji dokującej, to się aktualizował - więc siłą rzeczy musiał iść reboot (W10). Jutro jak będę w biurze to zweryfikuję tą hipotezę.

U mnie tak to działa – jeśli odłączę przewody monitorów od stacji dokującej to nic się nie zmienia, okno przeglądarki nadal znajduje się na obszarze odłączonego monitora. To samo jeśli odłączę laptopa od stacji dokującej. Jeśli natomiast włączę laptopa poza stacją dokującą, to wszystkie okna, które domyślnie są wyświetlane na monitorze, zostaną wyświetlone na matrycy laptopa. Wszystko dlatego, że po odłączeniu monitora, system nie zmienia rozmiaru pulpitu, a więc nie reorganizuje okien.

Zdaję sobie sprawę z tego, że pomiędzy różnymi wersjami systemu Wndows są różnice w obsłudze wielu monitorów (niektóre wręcz diametralne), ale nie mam możliwości sprawdzenia jak to wygląda na każdej wersji systemu. Przy czym regularnie podłączam laptop z Win7 do telewizora po HDMI i za każdym razem robi mi jakieś jaja z rozdzielczościami. Nienawidzę tego, to automatyczne dostosowywanie pulpitu i rozdzielczości nigdy nie działa jak należy i jedynie wnerwia użytkowników.


Jeśli chodzi o obsługę wielu ekranów, to WinXP bije na głowę wszystkie nowsze systemy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1