Прозорци
4 отговора
195 прегледа
Прозорци
Здравейте!
Имам проблем с унищожаването на динамично създадени прозорци. Като затворя ниякой прозорец и го отвря пак ми казва че съществува прозорец със същото име - не се унищожава. Знам, че беше по удачно да ползвам MDI. Надявам се някой да ми помогне да си реша проблема...
Имам проблем с унищожаването на динамично създадени прозорци. Като затворя ниякой прозорец и го отвря пак ми казва че съществува прозорец със същото име - не се унищожава. Знам, че беше по удачно да ползвам MDI. Надявам се някой да ми помогне да си реша проблема...
Re: Прозорци
self.close;
self.free;
//tuka izbqgwaj da pishesh kod osobenoo izpolzwasht obekta
end; //Tform.pisna_mi_ot_taq_forma
self.free;
//tuka izbqgwaj da pishesh kod osobenoo izpolzwasht obekta
end; //Tform.pisna_mi_ot_taq_forma
Re: SDR
Каде да поставя този код? Последния ми опит беше такъв: Когато се създава формата присвоявам на tag:=2 например , после при OnHide със screen.forms вземам всички форми с такъв таг на тази които са скрити запазвам Handle на прозореца (би трябвало да е последнатя затворен) и давам CloseWindow(my_handle) - тая работа обаче не работи нещо - брояча си нараства
... Ще пробвам и този код който си предложил - дано помогне
Re: SDR
Wij sega:
1. Kogatao syzdawash neshto ti bi trqbwalo da znaesh kakwo si syzdal. t.e. trqbwa da imash spisyl sys zyzdadenite formi. tam kydeto gi syzdawash naj weroqtno druga forma trqbwa da imash spisyk (TList) kym kojto da .Add (newForm) was nowite formi koito syzdawash. Dobra ideq e formite koito sa sayzdawani da zanqt koe forma gi e syzdala za da mogat pri OnDestroy da se potyrsqt w spisyka na syzdalata gi forma i da go izchistqt .IndexOfObject(this),.delete(idx) ili napravo .Remove(this) kato wtoroto e za predpochitane za da ne stane gaf ot paralelna gledna tochka!
Dobra ideq e formite sami da mogat da reshat koga da se unishtojat i togawa toq spisyk shte ti trqbwa samo nakraq kogato se zatowri glawnata forma za da moje da unishtoji syzdadenite formi Tform(formlist).Close ili .Destroy spored zora trqbwa obache za po sigurno da si otkopirash spisyka zashtoto formite shte pochant da se triqt ot osnowniq spisyk i sha stane mazalo!
Izobshto izpolzwajki TMyFormType(formlist) mojesh da prawish dosyp do instanite na syzdadenite formi a tam mojesh da si imash kolkoto si iskash i kakwito si iskash flagowe t.e. mojesh da prawish s tqh kakwoto si iskash.
Nadqwam se che sym bil polezen ako ima oshte problemi pitaj.
1. Kogatao syzdawash neshto ti bi trqbwalo da znaesh kakwo si syzdal. t.e. trqbwa da imash spisyl sys zyzdadenite formi. tam kydeto gi syzdawash naj weroqtno druga forma trqbwa da imash spisyk (TList) kym kojto da .Add (newForm) was nowite formi koito syzdawash. Dobra ideq e formite koito sa sayzdawani da zanqt koe forma gi e syzdala za da mogat pri OnDestroy da se potyrsqt w spisyka na syzdalata gi forma i da go izchistqt .IndexOfObject(this),.delete(idx) ili napravo .Remove(this) kato wtoroto e za predpochitane za da ne stane gaf ot paralelna gledna tochka!
Dobra ideq e formite sami da mogat da reshat koga da se unishtojat i togawa toq spisyk shte ti trqbwa samo nakraq kogato se zatowri glawnata forma za da moje da unishtoji syzdadenite formi Tform(formlist).Close ili .Destroy spored zora trqbwa obache za po sigurno da si otkopirash spisyka zashtoto formite shte pochant da se triqt ot osnowniq spisyk i sha stane mazalo!
Izobshto izpolzwajki TMyFormType(formlist) mojesh da prawish dosyp do instanite na syzdadenite formi a tam mojesh da si imash kolkoto si iskash i kakwito si iskash flagowe t.e. mojesh da prawish s tqh kakwoto si iskash.
Nadqwam se che sym bil polezen ako ima oshte problemi pitaj.
Re: SDR
Много благодаря SDR ама за сега си реших проблема по много лесен начин:
procedure tform1.newformclose(Sender: TObject; var Action: TCloseAction);
begin
action:=caFree;
end;
:)) Не знам защо ми е обягнал от погледа най лесния и очевиден вариант... А за другити проблеми ще пиша - обещавам
procedure tform1.newformclose(Sender: TObject; var Action: TCloseAction);
begin
action:=caFree;
end;
:)) Не знам защо ми е обягнал от погледа най лесния и очевиден вариант... А за другити проблеми ще пиша - обещавам