MDI - okna wewnętrzne

0

witam
mam aplikacje mdi - form główny (parent) i pare mdichildow i pytanko
co zrobic aby zawsze mdichild form otwieralo sie zmaksym. w formie parent?

pozdrawiam

0

Pewnie trzeba ustawić właściwość WindowState formy child na wsMaximized

0

No wlasnie jest :)
Pierwsza forma pokazuje sie zmaksymilizowa - a kazda kolejna mimo to ze ma ten atrybut ustawiony - pokazuje sie z paskiem u gory

pozdr

0
mały_kulfon napisał(a)

No wlasnie jest :)
Pierwsza forma pokazuje sie zmaksymilizowa - a kazda kolejna mimo to ze ma ten atrybut ustawiony - pokazuje sie z paskiem u gory

pozdr

Przecież zawsze będzie pasek u góry :| Jak go nie chcesz to borderStyle na bsNone.

0

ustawione jest bez paska - tak jak napisalem pierwsze okno otwiera sie bez paska, kazde nastepne mimo ustqwionych parametrow otwiera sie z paskiem u gory

0

pare mdichildów

Są to różne formy? Jeżeli tak to dla każdej ustaw odpowiedni WindowState (wsMaximized), a nie tylko dla tej, którą otwierasz na poczatku.

0

Ewentualnie ustawiaj to w OnCreate formy...

procedure TFormaMDIChild.OnCreate(Sender: TObject);
begin
  WindowState := wsMaximized;
end;
0

odzywam sie ponownie, poniewaz koncze aplikacje i problem ten pozostal bez rozwiazania i moze ktos z szanwnych grupowiczow wie jak roziwazac ten problem.

Czyli: mam aplikacje mdi z wieloma mdichildami
wlasnoscie wszystkich childow ustawione na windowState->wsMaximized, BorderIcons->[] (pusto) i tak otwieram z menu na parentformie:
...
f := TForm7.Create(Application);
try
f.Show;
finally
...
za pierwszyma razem okno wewn otwiera sie ok (z efektem maksymilizacji -tez chcialbym sie tego pozbyc, jezeli to mozliwe).
pozniej kazde nowe okno wewnetrzne pokazuje sie zmaksymilizowane ale z paskiem na górze (niepozadany efekt), wczesniej zamykam wszystkie childy funkcja:

...
ine:=Form0.MdiChildCount;
while ine>0 do
begin
Form0.MDIChildren[ine-1].Release;
ine:=ine-1;
end;
...
i jezeli ta funkcje podepne powiedzmy pod button na formie ewentualnie dodam jako f menu to zamyka mi ladnie okno wewnetrzne i pozniej otworzenie kolejnego okna wewn jest bez problemu.
jezeli wywoluje ta funkcje przed stworzeniem nowego okna child - "efekt z paskiem"

bardzo prosze o uwagi i pomoc
dziekuje i pozdrawaim

0

w pcji aligin(childa) ustaw na AlNone i bedize ok
a co do smużenia i widocznej max..cji to nie wiem tez sie z tym meczylem i nic nie wskoralem
br

0
LockWindowUpdate(HandleMainForm);
FormMDIChild.Show;
LockWindowUpdate(0);
0

Misiek_d jakbys mogl wyjasniec te linie kodu - co robia i gdize je wstawic

pozdrawiam

0
maly_kulfon napisał(a)

Misiek_d jakbys mogl wyjasniec te linie kodu - co robia i gdize je wstawic

  1. "a co do smużenia i widocznej max..cji" - rozwiązanie
  2. gdzie wstawić - zamiast okno.show to te 3 linijki
  3. wyjaśnieć - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_4i5h.asp
0

podziekowac

0

ta i trza zadeklarowac jeszcze biblioteke, a te wymagania co oni podaja to to tez sie ma do delhi?
skad se mam wziasc te biblioteke w d7 pro?

0
maly_kulfon napisał(a)

ta i trza zadeklarowac jeszcze biblioteke, a te wymagania co oni podaja to to tez sie ma do delhi?
skad se mam wziasc te biblioteke w d7 pro?

jaką bibliotekę ???

0

no pokićkało mi sie
apropos tych trzech linijek - po wstawieniu ich i tak widac efekt maksymilizacji - widac okno małych rozmiarów po czym maksymilizowane jest.
a moze cos zle zrobilem?
pozdrawiam

0

a wywyoluje okno tak :

f := TForm6.Create(Application);
try
//LockWindowUpdate(HandleMainForm);
f.Show;
//LockWindowUpdate(0);
finally

(mimo wstawienia tych lini o których mowiles - wyremowane) i tak widoczny ekekt maksymilizacji

0

ech trzeba czytać to co jest napisane!!
HandleMainForm czyli uchwyt okna głównego

f := TForm6.Create(self);
LockWindowUpdate(Handle); //jeśli ta procka jest w unicie formy głównej to tak wystarczy
f.Show;
LockWindowUpdate(0);

a poza tym try finally jest tu niepotrzebne

0

Dzieki Misiek_d, ale mimo tego nie dziala.

na glownej formie wywolane LockWindowUpdate(HandleMainForm);
pozniej z menu odpalam childa w mdiparent
FormMDIChild.Show;
LockWindowUpdate(0);
i mimo tego widac "animacje" powiekszania okna

pozdrawiam

0
maly_kulfon napisał(a)

Dzieki Misiek_d, ale mimo tego nie dziala.

na glownej formie wywolane LockWindowUpdate(HandleMainForm);
pozniej z menu odpalam childa w mdiparent
FormMDIChild.Show;
LockWindowUpdate(0);
i mimo tego widac "animacje" powiekszania okna

pozdrawiam

przeczytaj to co napisałęm trzy razy - działa

0

z unita formy glownej wyolywane
f := TForm6.Create(Self);
LockWindowUpdate(HandleMainForm);
f.Show;
LockWindowUpdate(0);

i mimo tego dalej widac efekt maksymilizacji - NIE DZIAŁA

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