Форум по Delphi программированию



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.06.2006, 10:01
Foccer Foccer вне форума
Прохожий
 
Регистрация: 10.06.2006
Сообщения: 5
Репутация: 10
По умолчанию Проверка

Не могли б подсказать, как узнать создан ли тот или иной объект?
Заранее благодарен!!!
Ответить с цитированием
  #2  
Старый 10.06.2006, 18:19
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

О каких объектах идет речь? О классах? Если да, то попробуй так:

Допустим есть класс 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  
Старый 11.06.2006, 19:54
Foccer Foccer вне форума
Прохожий
 
Регистрация: 10.06.2006
Сообщения: 5
Репутация: 10
По умолчанию

объект Панель и MDi-окно(только дочернее)
Ответить с цитированием
  #4  
Старый 12.06.2006, 01:47
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

По поводу дочерних форм. Посмотри пример и скажи, подходит это или нет?
forms.zip
Ответить с цитированием
  #5  
Старый 14.06.2006, 16:35
Foccer Foccer вне форума
Прохожий
 
Регистрация: 10.06.2006
Сообщения: 5
Репутация: 10
По умолчанию

Спасибо, конечно.
Подходит, но не совсем. Одна загвоздка: дочерняя форма создается только 1 раз. Я хочу сделать так: если форма создана - то не создавалась2 копия, если нет - то создать её.
Ответить с цитированием
  #6  
Старый 14.06.2006, 23:11
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Да, есть грешок. Пример писался быстро, так что я не проверил, что произойдет, если закрывать не через меню. Исправляется элементарно, погляди сейчас...

forms_new.zip
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:29.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter   Ссылка на Telegram