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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.10.2013, 16:59   #1
skillsoft
 
Регистрация: 26.06.2011
Сообщений: 3
По умолчанию Invalid Class Typecast только на первом компоненте

Здравствуйте. Подскажите, пожалуйста!
Проблема следующая... У меня в цикле динамически создаются кнопки. Создание проходит нормально, но... при нажатии на первый контрол левой кнопкой выходит Invalid Class Typecast, на остальных нормально.
Код:
  for y := 1 to 3 do
  begin
    t:=8;

    GameButton:=TButton.Create(self);
    GameButton.Parent:=MainForm;
    GameButton.Left:=l;
    GameButton.Top:=11;
    GameButton.Width:=170;
    GameButton.Name:='GameButtons'+IntToStr(n);
    GameButton.Tag:=y;
    GameButton.Caption:='Свободный слот';
    GameButton.OnClick:=ButtonClick;
    GameButton.OnMouseUp:=ButtonMouseUp;

    for x := 1 to 15 do
    begin
      GameButton:=TButton.Create(self);
      GameButton.Parent:=MainForm;
      GameButton.Left:=l;
      GameButton.Name:='GameButton'+IntToStr(y)+IntToStr(x);
      GameButton.Tag:=n;
      GameButton.Top:=t+31;
      GameButton.Width:=170;
      GameButton.Caption:='Свободный слот';
      GameButton.OnClick:=ButtonClick;
      GameButton.OnMouseUp:=ButtonMouseUp;

      t:=t+31;
      inc(n);
    end;
    l:=l+196;
  end;
Ошибка выходит вот здесь
if (components[Tag] as TButton).Caption <> 'Свободный слот' then

(Tag передается через события (onClick и onMouseUp) в процедуру и на onClick ошибка)

Последний раз редактировалось Stilet; 03.10.2013 в 17:49.
skillsoft вне форума
Старый 03.10.2013, 17:12   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Номер компонента в списке Components, не имеет ничего общего со свойством tag.
Человек_Борща вне форума
Старый 03.10.2013, 17:29   #3
skillsoft
 
Регистрация: 26.06.2011
Сообщений: 3
По умолчанию

Блинн... вот тупанул. давно не лазил в делфи, забыл. СПС
skillsoft вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа всегда на первом плане Lorden Общие вопросы Delphi 10 28.01.2011 17:57
"Project 1.exe raised exception class EInvalidPointer with messege 'Invalid pointer operetion'".. DeEgo Помощь студентам 3 28.02.2010 07:51
invalid class typecast heart Общие вопросы Delphi 8 09.01.2010 21:09
Фокус на первом елементе в ListView regman Компоненты Delphi 4 27.07.2009 11:08
raised exception class EIdSocketError with message' Socket Error # 10022 Invalid argument eldar Работа с сетью в Delphi 16 08.08.2008 23:49