Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Invalid class typecast   Найти похожие ветки 

 
Wish ©   (2004-10-06 14:32) [0]

for i := 0 to Screen.CustomFormCount - 1 do
if Screen.CustomForms[i] is TMessageForm then
  begin
  if (Screen.CustomForms[i] as TMessageForm).ip = ABinding.PeerIP then
    begin
    b1:=true;
    (Screen.CustomForms[i] as TMessageForm).SetFocus;
    (Screen.CustomForms[i] as TMessageForm).RichEdit1.Lines.Add(variable);
    PlaySound("sounds\beep.wav",SND_ASYNC,SND_ASYNC);
  end;


Все копилируется, но при работе прилоджения вот в этой строчке кода появляется ошибка - Invalid class typecast. Вот эта строчка:

(Screen.CustomForms[i] as TMessageForm).RichEdit1.Lines.Add(varible);


 
Digitman ©   (2004-10-06 14:37) [1]


> variable


как объявлен этот идентификатор в программе ?


 
Wish ©   (2004-10-06 14:39) [2]

String


 
Семен Сорокин ©   (2004-10-06 14:44) [3]

Wish ©   (06.10.04 14:39) [2]
уже же ответили что после
(Screen.CustomForms[i] as TMessageForm).SetFocus;
выбранная форма меняет индекс i в Screen, попробуй так:

var
 _fm: TMessageForm;
 

for i := 0 to Screen.CustomFormCount - 1 do
if Screen.CustomForms[i] is TMessageForm then begin
  _fm := TMessageForm(Screen.CustomForms[i]);
  if _fm.ip = ABinding.PeerIP then begin
   b1:=true;
   _fm.SetFocus;
   _fm.RichEdit1.Lines.Add(variable);
   PlaySound("sounds\beep.wav",SND_ASYNC,SND_ASYNC);
  end;
end


 
Суслик ©   (2004-10-06 14:45) [4]


> Wish ©   (06.10.04 14:32)

Я же тебе дал ответ - дело в том, что при setfocus у тебя меняется порядок.
Зачем еще раз спрашивать?


 
Digitman ©   (2004-10-06 14:46) [5]

тогда ты лукавишь
исключение по отказу в приведении типа здесь может возникнуть только на as-операторе, если CustomForms[i] не являет собой класс TMessageForm .. но эта проверка , согласно твоему условию, успешно пройдена ранее - при исполнении is-оператора, вернувшего якобы True


 
Wish ©   (2004-10-06 14:46) [6]

Да почему то той темы найти не мог, нажал показать все а ее нет!


 
Wish ©   (2004-10-06 14:48) [7]

Спасибо огромное, все работает!!!


 
Digitman ©   (2004-10-06 14:48) [8]

точно, упустил из вида ... индекс-то меняется



Страницы: 1 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
4-1095753422
Дима
2004-09-21 11:57
2004.10.24
Выключение питания


3-1096027384
ceval
2004-09-24 16:03
2004.10.24
Подскажите как сделать это при помощи ADOQuery ?


1-1097078281
TeNY
2004-10-06 19:58
2004.10.24
Почему теряется значение переменная?


3-1096451320
Term
2004-09-29 13:48
2004.10.24
Есть ли какиелибо утилиты для работы с MSSQL2000


14-1097136819
pan
2004-10-07 12:13
2004.10.24
редактирование реестра запрещено администратором системы