problem z odwolaniem sie do pola klasy w mdi

0

Otóż mam taki problem:
Tworze aplikacje MDI, gdzie mam dwa typy okien potomnych plus okno rodzica. Okna potomne sa tworzone poprzez nacisniecie odpowiedniego przycisku, ktory wywola metode tworzącą nowe okno potomne. I teraz moj problem:
Gdzies w programie w jakims tam Unicie, chciałbym odwołac sie do konkretnego pola klasy okna potomnego (wyciągnąć informacje) tyle ze okna te tworzone sa dynamicznie i nie mam wczesniej jawnie okreslonego obiektu danej klasy, tak jak to jest w przypadku głównej formy programu.

Kod wyglada mniej wiecej tak:

jakis tam unit:

function GetInfo: Word;
...
zmienna:= fooobiekt_klasy.pole_klasyfoo.
result:= zmienna;

Jesli obiekt_klasy byłby główna forma programu problem z głowy, w tym przypadku nie bardzo wiem jak do tego podejsc, tym bardziej ze sa to jeszcze okna potomne tworzone w trakcie działania programu.

0

Możesz te zmienne okien przechowywać w głównym oknie, jako pola klasy.

0

MDIChildCount + MDIChildren + ActiveMDIChild +

if MDIChildren[i] is TMojeOknoMDITypuPierwszego then
  (MDIChildren[i] as TMojeOknoMDITypuPierwszego).MojaWlasciwosc := Dupa
else if MDIChildren[i] is TMojeOknoMDITypuDrugiego then
  (MDIChildren[i] as TMojeOknoMDITypuDrugiego).MojaInnaWlasciwosc := InnaDupa;
0

No ok ale pozniej jak wartosc z MojaWlasciwosc przypisac do jakiejs zmiennej.
Czyli:
procedure PobierzWartosc
var
temp
begin
if MDIChildren[i] is TMojeOknoMDITypuPierwszego then
(MDIChildren[i] as TMojeOknoMDITypuPierwszego).MojaWlasciwosc := Dupa
temp:= (MDIChildren[i] as TMojeOknoMDITypuPierwszego).MojaWlasciwosc
end;

temp i MojaWlasciwosc sa tego samego typu.

w przypisaniu wyskakuje blad w trakcie dzialania programu: Access violation at address..
poza tym jak pobrac numer aktywnego okna potomnego [i]...jesli sa np. 3 a jestem na drugim oknie

0

kod trzeba najpierw ZROZUMIEĆ a nie przepisywać bez sensu!

0

Ok dzieki, poszedlem po rozum do glowy i wszystko jest clear :)

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