![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Invalid class typecast [D7, WinXP]
Wish © (2004-10-06 14:32:00)
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);
Wish (2004-10-06 14:48:00) [1]Спасибо огромное, все работает!!!
Digitman (2004-10-06 14:48:00) [2]точно, упустил из вида ... индекс-то меняется
Digitman (2004-10-06 14:46:00) [3]тогда ты лукавишь
исключение по отказу в приведении типа здесь может возникнуть только на as-операторе, если CustomForms[i] не являет собой класс TMessageForm .. но эта проверка , согласно твоему условию, успешно пройдена ранее - при исполнении is-оператора, вернувшего якобы True
Wish (2004-10-06 14:46:00) [4]Да почему то той темы найти не мог, нажал показать все а ее нет!
Суслик (2004-10-06 14:45:00) [5]
> Wish © (06.10.04 14:32)
Я же тебе дал ответ - дело в том, что при setfocus у тебя меняется порядок.
Зачем еще раз спрашивать?
Семен Сорокин (2004-10-06 14:44:00) [6]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
Wish (2004-10-06 14:39:00) [7]String
Digitman (2004-10-06 14:37:00) [8]
> variable
как объявлен этот идентификатор в программе ?