Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2008, 14:35   #1
John_chek
Форумчанин
 
Аватар для John_chek
 
Регистрация: 24.01.2007
Сообщений: 108
По умолчанию Проверка существования TEdit

Добрый день! Я динамически создаю TEdit, как проверить создан он или нет?
John_chek вне форума Ответить с цитированием
Старый 18.04.2008, 14:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Смотря как создаеш.
Можно поискать по имени, можно по всем контролам в родителе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.04.2008, 14:38   #3
John_chek
Форумчанин
 
Аватар для John_chek
 
Регистрация: 24.01.2007
Сообщений: 108
По умолчанию

Создаю так:
Код:
 
  FindEdit : TEdit;
...
   FindEdit := TEdit.Create(fstart);
    with  FindEdit do
      begin
      Parent := Fstart;
      left := 61;
      width := DBGridEh1.Columns[1].Width;
      Top := FStart.Height - 90;
      OnChange :=  find;
      OnKeyDown := OnKeyDownFind;
      OnExit := findOnExit;
      SetFocus;
      SelText := key;
      end;
Если Tedit не создан, а я пытаюсь проверить его видимость, ругается соответственно:
if FindEdit.visible = true then - вот здесь ругается

Последний раз редактировалось John_chek; 18.04.2008 в 14:41.
John_chek вне форума Ответить с цитированием
Старый 18.04.2008, 14:39   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Функция CREATE возвращает либо указатель на созданный объект, либо NIL, если удача не постигла...
А что, так трудно проверить в момент создания?
mihali4 вне форума Ответить с цитированием
Старый 18.04.2008, 14:42   #5
John_chek
Форумчанин
 
Аватар для John_chek
 
Регистрация: 24.01.2007
Сообщений: 108
По умолчанию

Нет, объект создается нормально, а как проверить до того, пока он еще не создан, что его нет?
Короче говоря, при закрытии формы карточки, нужно прятать Edit, а если он еще не создан то ругается!

Последний раз редактировалось John_chek; 18.04.2008 в 14:46.
John_chek вне форума Ответить с цитированием
Старый 18.04.2008, 14:49   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от John_chek Посмотреть сообщение
Нет, объект создается нормально, а как проверить до того, пока он еще не создан, что его нет?
Короче говоря, при закрытии формы карточки, нужно прятать Edit, а если он еще не создан то ругается!
Что именно вы хотите проверить?
Что не существует объекта с таким именем или что не существует ни одного объекта данного класса?
Определитесь с вопросом. Для начала...
Цитата:
Короче говоря, при закрытии формы карточки, нужно прятать Edit, а если он еще не создан то ругается!
Ну так сделайте проверку перед закрытием. Как - вам уже написали... FindComponent...
Или как Мутабор подсказал (ниже).
Или заведите булевскую переменную - флажок, который будете устанавливать при создании. Если так вам удобнее покажется.

Последний раз редактировалось mihali4; 18.04.2008 в 14:54.
mihali4 вне форума Ответить с цитированием
Старый 18.04.2008, 14:50   #7
John_chek
Форумчанин
 
Аватар для John_chek
 
Регистрация: 24.01.2007
Сообщений: 108
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Что именно вы хотите проверить?
Что не существует объекта с таким именем или что не существует ни одного объекта данного класса?
Определитесь с вопросом. Для начала...
Мне нужно проверить, что FindEdit еще не создан!
John_chek вне форума Ответить с цитированием
Старый 18.04.2008, 14:51   #8
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Попробуй так:
if FindEdit <> nil then if FindEdit.visible = true then ;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 18.04.2008, 14:55   #9
John_chek
Форумчанин
 
Аватар для John_chek
 
Регистрация: 24.01.2007
Сообщений: 108
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Ну так сделайте проверку перед закрытием. Как - вам уже написали... FindComponent
Или заведите булевскую переменную - флажок, который будете устанавливать при создании. Если так вам удобнее покажется.
Именно проверку перед закрытием я и делаю. FindComponent - вот про это я и спрашивал!
John_chek вне форума Ответить с цитированием
Старый 18.04.2008, 14:56   #10
John_chek
Форумчанин
 
Аватар для John_chek
 
Регистрация: 24.01.2007
Сообщений: 108
По умолчанию

Цитата:
Сообщение от mutabor Посмотреть сообщение
Попробуй так:
if FindEdit <> nil then if FindEdit.visible = true then ;
Код:
    if FindEdit <> nil then
    FindEdit.visible := false;
Так тоже работает Спасибо!!
John_chek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TEdit Xardas Общие вопросы Delphi 2 17.01.2008 02:04
Проверка существования директории Gorin Общие вопросы Delphi 7 25.11.2007 19:47
TEdit, TEdit, TEdit Oleg Romanchuk Помощь студентам 2 20.08.2007 11:30
проверка существования окна Shade Win Api 3 22.07.2007 17:56