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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2009, 00:27   #1
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию FindComponent

добрый вечер сново
проблема->
Код:
if timka>5 then
  begin
   form1.countries1.Timer2.Enabled:=false;
   with (FindComponent(Name) as TComboBox) do
    begin
     visible:=false;
    end;
  end;
подскожите пожалуйста
что тут неправильно?
Name ComboBox1
оно находит компонент а потом на visible ошибка(((
^_^
WOLFak вне форума Ответить с цитированием
Старый 08.01.2009, 00:52   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вообще-то, я бы сделал так:
with TComboBox(FindComponent(Name)) do
visible:=false;
Кстати, подобный пример есть и во встроенном хэлпе - достаточно поставить курсор на слово FindComponent и тыркнуть F1

Последний раз редактировалось mihali4; 08.01.2009 в 00:54.
mihali4 вне форума Ответить с цитированием
Старый 08.01.2009, 01:02   #3
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

111.jpg
вот ето и тогда вылетало
компонент который ищется находится на фрейме - ет ничего?
ну я хелп юзал и ведел то ток была эта ошибка и я решил немного передалать
^_^

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

Цитата:
вот ето и тогда вылетало
Когда "тогда"?
Хорошо, делаем "по разделениям":
Код:
mycomp:=FindComponent(Name);
if ((mycomp<>nil) and (mycomp is TComboBox)) then
(mycomp as TComboBox).Visible:=False;
Я надеюсь, NAME хоть - нормальное имя компонента?
mihali4 вне форума Ответить с цитированием
Старый 08.01.2009, 01:14   #5
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Я надеюсь, NAME хоть - нормальное имя компонента?
ммм.... нормальное?
поставил последний вариант - ничего не произошло ни исчезания ни ошибки
Код:
name:='ComboBox1';
а этот бокс находится --- >
Код:
form1.countries1.ComboBox1
countries1 является фреймом
Код:
mycomp:=FindComponent(Name);
if ((mycomp<>nil) and (mycomp is TComboBox)) then
(mycomp as TComboBox).Visible:=False;
этот дает nil и ошибки нет и visible := false тоже нет
^_^

Последний раз редактировалось WOLFak; 08.01.2009 в 01:36.
WOLFak вне форума Ответить с цитированием
Старый 08.01.2009, 02:18   #6
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

помогите пожалуйста очн надо
можт я не правильно думаю
задумка такая нажимая на Shape на картинке появляется рядом КомбоБокс и если 6 сек его не трогают исчезает
все это на фрейме
222.jpg
^_^

Последний раз редактировалось WOLFak; 08.01.2009 в 02:20.
WOLFak вне форума Ответить с цитированием
Старый 08.01.2009, 02:29   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
задумка такая нажимая на Shape на картинке появляется рядом КомбоБокс и если 6 сек его не трогают исчезает
все это на фрейме
Ну так и используйте для поиска его полное имя, с указанием принадлежности к родителю - фрейму - countries1.ComboBox1
Он у вас заранее создан - на этапе проектирования формы?
Если динамически создаете, то назначьте ему родителя.
mihali4 вне форума Ответить с цитированием
Старый 08.01.2009, 02:44   #8
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

все пасибо разобрался
^_^
WOLFak вне форума Ответить с цитированием
Старый 07.07.2012, 22:50   #9
ierecumi
 
Регистрация: 28.05.2010
Сообщений: 9
По умолчанию

а мне не поможете с FindComponent разобраться?


Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
k:integer;
begin
for k:=0 to 10 do
begin
if weapon <> nil then
for m:=1 to 10 do
TImage(FindComponent('weapon'+IntToStr(m))).Top:=weapon.Top-1;
{weapon.Top:=weapon.Top-1;}
end;
end;
Вложения
Тип файла: zip Unit1.zip (233.1 Кб, 17 просмотров)
ierecumi вне форума Ответить с цитированием
Старый 07.07.2012, 23:29   #10
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

2 ierecumi
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  k, m : integer;
  C : TComponent;
begin
  for k := 0 to 10 do begin
    if weapon <> nil then
      for m := 1 to 10 do begin
        C := FindComponent('weapon'+IntToStr(m));
        if C <> nil then begin
          TImage(C).Top:=weapon.Top-1;
          if TImage(C).Top < 0 then
            FreeAndNil(C);
        end;
      end;
{weapon.Top:=weapon.Top-1;}
  end;
end;
В дельфийском таймере интервал 10 ставить бессмысленно. Дай, творец, ему и с 50 мск справиться.
Прик вне форума Ответить с цитированием
Ответ


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