![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как написать условие
alexdn © (2012-08-25 14:33:00)Если form4 существует, то.. if form4.visible не подходит, т.к. форма может быть закрыта.
Inovet (2012-08-28 08:48:00) [1]> [28] AV © (28.08.12 01:29)
> > А если у тебя две таких формы?
>
> указатель все равно ссылается на один экземпляр.
Ну так там же куда-то "терятются" формы.
AV (2012-08-28 01:29:00) [2]конкретно form4 - указатель, указатель хватит просто проверить на nil
> if form4 <> nil then
> А если у тебя две таких формы?
указатель все равно ссылается на один экземпляр.
А если стоит задача найти все формы класса TForm4, то я бы выбрал
> for i := 0 to Screen.FormCount do if Screen.Forms[i] is
> TForm4 then
turbouser (2012-08-26 13:06:00) [3]
> Dennis I. Komarov © (26.08.12 11:34) [26]
a) это объясняет проблему. в прочем, ты прав.
б ) не совсем
в) +1
Dennis I. Komarov (2012-08-26 11:34:00) [4]
> кури MDI.
а) У ТС нет ни слова о MDI.
б) Это лишь объясняет, как он ее "потерял".
в) В этом случае, вообще не вижу смысла хранить указатель.
turbouser (2012-08-25 21:27:00) [5]
> Dennis I. Komarov © (25.08.12 19:32) [24]
кури MDI.
Dennis I. Komarov (2012-08-25 19:32:00) [6]Зачем нужна Form4 и как ты ее потерял?
Да, еще что значит "существует", потому как:
Если form4 существует, то.. if form4.visible не подходит, т.к. форма может быть закрыта.?
turbouser (2012-08-25 19:01:00) [7]
> Медвежонок Пятачок © (25.08.12 18:22) [21]
хз. сырцов дама нет, дельфей нет :) каааааайф
Dimka Maslov (2012-08-25 18:38:00) [8]for i := 0 to Screen.FormCount do if Screen.Forms[i] is TForm4 then Screen.Forms[i].Close;
Медвежонок Пятачок (2012-08-25 18:22:00) [9]Новенькое, ага.
Примерно с первой версии дельфы.
turbouser (2012-08-25 18:03:00) [10]да и CreateForm - эт чета новенькое?
turbouser (2012-08-25 18:02:00) [11]form4.free = c.free
turbouser (2012-08-25 18:01:00) [12]var C:tcomponent;
c:=Application.findcomponent('form4');
if Assigned(c) then
form4.free else
Application.CreateForm(TForm4, Form4);
end;
как-то так.
turbouser (2012-08-25 17:56:00) [13]
> alexdn © (25.08.12 17:29) [16]
православное Free ^))
alexdn (2012-08-25 17:29:00) [14]> turbouser © (25.08.12 16:29) [13]
> Хотя, кое где у меня есть и убийство и пересоздание. Да.
Вот, убийство и пересоздание и было -
if Application.findcomponent('form4')<>Nil then begin
form4.Close;
Application.CreateForm(TForm4, Form4);
end;
turbouser (2012-08-25 17:21:00) [15]
> Inovet © (25.08.12 17:11) [14]
> Да ну, почему бы не открыть несколько одниаковых форм с
> разными данными одновременно.
угу. и потом искать form4. а их там несколько.
если бы автор мог себе позволить иметь несколько одинаковых форм - вопроса бы не возникло. в прочем, неизвестно, как всегда, что там у тс..
Inovet (2012-08-25 17:11:00) [16]> [12] turbouser © (25.08.12 16:27)
> > Inovet © (25.08.12 15:50) [9]
>
> ССЗБ
Да ну, почему бы не открыть несколько одниаковых форм с разными данными одновременно.
turbouser (2012-08-25 16:29:00) [17]
> Inovet © (25.08.12 15:50) [9]
Хотя, кое где у меня есть и убийство и пересоздание. Да.
turbouser (2012-08-25 16:27:00) [18]
> Inovet © (25.08.12 15:50) [9]
ССЗБ
Amir (2012-08-25 16:12:00) [19]Поместить после создания формы ссылку на нее в TList
Проверять по условию
if TForm(List.items[i]) is TForm4 then ...
brother (2012-08-25 16:04:00) [20]имхо if form4 <> nil then ...