|
#1
|
|||
|
|||
Проверка
Не могли б подсказать, как узнать создан ли тот или иной объект?
Заранее благодарен!!! |
#2
|
||||
|
||||
О каких объектах идет речь? О классах? Если да, то попробуй так:
Допустим есть класс TTest Код:
TTest = class end; var Form1: TForm1; Test: TTest; Код:
// Создаем класс procedure TForm1.Button1Click(Sender: TObject); begin Test := TTest.Create; end; // Уничтожаем класс procedure TForm1.Button2Click(Sender: TObject); begin Test.Free; end; // Проверяем, создан класс или нет procedure TForm1.Button3Click(Sender: TObject); begin try if Test.NewInstance <> nil then ShowMessage( 'Объект создан' ); except ShowMessage( 'Объект не создан' ); end; end; Во время проверки, если класс не создан, произойдет ошибка. Если запускать проект из под Delphi, он перехватит ошибку (если ты конечно не отключишь это в настройках компилятора) и прекратит работу приложения. А если ты запустишь сам .exe, то все отработает нормально. |
#3
|
|||
|
|||
объект Панель и MDi-окно(только дочернее)
|
#5
|
|||
|
|||
Спасибо, конечно.
Подходит, но не совсем. Одна загвоздка: дочерняя форма создается только 1 раз. Я хочу сделать так: если форма создана - то не создавалась2 копия, если нет - то создать её. |
#6
|
||||
|
||||
Да, есть грешок. Пример писался быстро, так что я не проверил, что произойдет, если закрывать не через меню. Исправляется элементарно, погляди сейчас...
forms_new.zip |