MDI Form/ MDI Child

Odpowiedz Nowy wątek
2004-02-13 07:39
0

Mam pytanie, przyciskiem Button tworze sobie kilka okienek MDIChild.
Teraz przyciskiem z glownej formy chcialbym przepisac text do np. drugiego z kolei okna MDIChild.
Jak to zrobic? Czy da sie rozpoznac numer tworzonego MDIChild?


Novitius

"If You come with nothing, You leave with nothing..."

Pozostało 580 znaków

2004-02-13 09:44
kalifat
0

Mam pytanie, przyciskiem Button tworze sobie kilka okienek MDIChild.
Teraz przyciskiem z glownej formy chcialbym przepisac text do np. drugiego z kolei okna MDIChild.
Jak to zrobic? Czy da sie rozpoznac numer tworzonego MDIChild?

Wiesz, możesz spróbować rozpoznawać otwarte okienka za pomocą funkcji FindWindow lub FindWindowEx. Wtedy złapiesz do tego okienka uchwyt (jak podasz jego nazwę) i potem poprzez ten uchwyt na chwilę uaktywnić okno i wpisać to co chcesz. Jeśli to uaktywnienie ma byc na chwilę to musisz tez zapamiętać Handle aktualnie ważnego okna.

Możesz też zapisywac sobie do jakiejś tablicy czy listy wartości Handle i powiązane z nimi numerki Twoich okienek. Jak bedzeisz tworzył nowy MDIChild to sobie to zapiszesz, a przed Free-owaniem wyrzucisz.

A poza tym przypomnaiłem sobie, że zawsze masz dwie własciwości TCustomForm do dyspozycji dotyczące MDIChild-ów.

To
MDIChildCount - która podaje Ci ile jest okien potomnych dla Twojego okna
oraz
MDIChildren - która jest tablicą formularzy

zastosowanie jak w przykładzie (z delphi help)
var I: Integer;
begin
with Form1 do
for I := MDIChildCount-1 downto 0 do MDIChildren[I].Close;
end;

zobacz sobie też stronkę
http://www.delphipages.com/th[...]read.cfm?ID=76300&G=76297

Pozostało 580 znaków

2004-02-13 16:29
0

Cos jest zle z tym kodem. Dla kazdego polaczonego z serverem clienta tworzone jest okno MDI, ale pomimo dodawania okien, zmienia sie caption tylko tego pierwszego mdi...

Moj kod:

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var
i:integer;
polaczenie:TpolaczenieForm;
mdi, ile_mdi: Integer;
begin
obrazek:=TpolaczenieForm.create(self);
ile_mdi:=Form1.MDIChildCount-1;
MDIChildren[ile_mdi].caption:='Połączenie nr.'+IntToStr(ile_mdi+1);

co jest nie tak?


Novitius

"If You come with nothing, You leave with nothing..."

Pozostało 580 znaków

2004-02-14 11:54
0

A nie możesz poprostu nadać nazwy tym oknom??



Pozostało 580 znaków

2004-02-14 14:37
0

Probowalem, ale coś z tym jest nie tak i nie dziala, jesli komus chcialoby sie przyjrzec temu blizej i napisac prawidlowy lub dodac jakeis poprawki bede wdzieczny


Novitius

"If You come with nothing, You leave with nothing..."

Pozostało 580 znaków

2004-02-16 08:29
kalifat
0

A spróbuj coś takiego

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
var
i:integer;
polaczenie:TpolaczenieForm;
mdi, ile_mdi: Integer;
begin
polaczenie:=TpolaczenieForm.create(self);
polaczenie.caption:='Połączenie nr.'+IntToStr(ile_mdi+1);

Pozostało 580 znaków

2004-02-16 15:04
0

Cos jest zle z tym kodem. Dla kazdego polaczonego z serverem clienta tworzone jest okno MDI, ale pomimo dodawania okien, zmienia sie caption tylko tego pierwszego mdi...

Moj kod:

obrazek:=TpolaczenieForm.create(self);
ile_mdi:=Form1.MDIChildCount-1;
MDIChildren[ile_mdi].caption:='Połączenie nr.'+IntToStr(ile_mdi+1);

co jest nie tak?

Ano nie tak jest to, że okna MDI dodawane są jak na stos. Mianowicie MDIChildren[0] zawsze wskazuje na ostatnio dodane a MDIChildren[MDIChildCount-1] na pierwsze dodane. Więc w swoim kodzie daj:

obrazek:=TpolaczenieForm.create(self);
MDIChildren[0].caption:='Połączenie nr.'+IntToStr(ile_mdi+1);

i będzie git - sorry, że tak późno - wcześniej mijałem ten wątek ;)


Pozostało 580 znaków

2004-02-17 09:31
0

Ok, dzieki, dziala.

Teraz inna sprawa. Jak przyciskiem z MDIForm odniesc sie do np. Edit'a w wybranym oknie MDIChild?


Novitius

"If You come with nothing, You leave with nothing..."

Pozostało 580 znaków

2004-02-18 10:18
0

Spróbuj ActiveMDIChild.


Słowa kierownika : To, jak wy zdążycie to napisać, to ja mam w szeroko rozumianej du*ie.
http://project1.pl

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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