Problem z ustawieniem wysokosci Formy...

0

Widnowsy mam ustawione w rozdzielczosci 800x600.
Chcialbym aby i moja forma miala takie same rozmiary. Niestety kiedy proboje w ClientHeight zwiekszyc wysokosc formy ponad 585 to ona uparcie wraca do tej liczby.... Dlaczego? Jak sie tego pozbyc?
--take care,

Wodzu

0

Hmm...nie wiem dlaczego w Inspektorze Obiektow nie da sie tego zmienic ale mozna to zmienic juz w runtime. Dziwne...--take care,

Wodzu

0

jezeli uzywasz d5, 6 to w Inspektorze Obiektow masz cos takiego jak Contraints
moze tam masz cos powpisywane :)---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ lks16@tenbit.pl ]=-

0

Wydaje mi sie ze Constraints dotyczy ograniczen rozciagliwosci formy ale juz po kompilacji... tak czy siak nic tam nie zmienialem:)--take care,

Wodzu

0

to moze sprobuj zmieniac Height a nie ClientHeight :)
to pierwsze to wysokosc calej formy lacznie z paskiem tytulowym a to drugie to wysokosc samego pola na ktore wszucasz komponenty
chyba :)---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ lks16@tenbit.pl ]=-

0

Ja chyba wiem jak temu zaradzic bo tesh mialem taki problem: Zmien rodzielczosc na 1024x768 i wtedy bedzie sie dalo ustawic wielkosc formy na taka jaka chcesz... Po zmienieniu wielkosci ustaw rozdzielczosc z powrotem na 800x600 i forma pozostanie taka jaka byla po ustawieniu!!! (przynajmniej u mni tak jest) :-) --Delphi 6, Pascal

----====Pozdrawiam @LL====----
------====== RFL ======------
--==[ rafalrs@poczta.onet.pl ]==--

0

Probowalem i jedno i drugie...ale jak juz mowilem mozna ten problem rozwiazac w runtime... ;) --take care,

Wodzu

0

Moja odpowiedz dotyczyla posta LKSa ;)

RFL, podejrzewalem ze kwestia twki w zmianie rozdzielczosci ekranu jednak nie sadzilem ze moja obawy sie potwierdza... Jestem ciekaw dlaczego to zalezy od rozdzielczosci...

Dzieki za pomoc! :)--take care,

Wodzu

0

Jak wiadomo ustawienie stanu formy na wsMaximized powoduje jej maksymalizację. Niestety okno powiększa swoje rozmiary przykrywając pulpit, ale pozostawiając na
wierzchu pasek zadań z Menu Start. Aby tego uniknąć wystarczyc wywołać poniższą procedurkę:

procedure ExtraMaximize(MyForm: TForm);

begin
if FindWindow('Shell_TrayWnd',nil) = 0
then MyForm.WindowState := wsMaximized
else with MyForm do
begin
WindowState:=wsNormal;
BorderStyle:=bsSingle;
Top:=0;
Left:=0;
Width:=GetSystemMetrics(SM_CXSCREEN);
Height:=GetSystemMetrics(SM_CYSCREEN)+GetSystemMetrics(SM_CYCAPTION);
end;
end;

Parametrem funkcji jest obiekt reprezentujący okienko, które chcemy poddać modyfikacji. W pierwszym kroku sprawdzamy, czy istnieje pasek zadań:
if FindWindow('Shell_TrayWnd',nil) = 0
Jeśli funkcja zwróci wartość 0, to pasek nie istnieje, czyli pracujemy w Windows 3.x lub NT 3.x. W takim przypadku wystarczy zwykła maksymalizacja okienka poprzez
modyfikację właściwości WindowState. Jeżeli jednak pasek istnieje, konieczne staje się wykonanie bardziej skomplikowanych działań. Najważniejszym z nich jest
modyfikacja szerokości i wysokości. Aby ustalić rozmiary pełnego ekranu posługujemy się funkcją GetSystemMetrics. Szerokość ustawiamy zgodnie z wartością
SM_CXSCREEN. Jednak już dla wysokości należy zsumować wysokość ekranu (SM_CYSCREEN) oraz rozmiar paska tytułowego okna (SM_CYCAPTION). Równie
ważne jest ustawienie właściwości BorderStyle na bsSingle. Dzięki temu użytkownik nie będzie miał możliwości zmniejszenia rozmiaru okienka, a jednocześnie
zachowa zdolność do jego minimalizacji.
Funkcję najwygodniej jest wywołać w module projektu zaraz po Application.CreateForm.--Pozdrowienia dla całego FORUM !!!

Marco_99

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.