|
#1
|
|||
|
|||
из Edit в Char
накидал на форму 4 эдита потом добавил кнопку и диаграмму, примерчик работает, но стоило мне накидать еще несколько эдитов и изменить в цикле значение по кол-ву эдитов, то появилась ошибка 'invalid class typecast' и перестало работать подскажите в чем может быть проблема и как ее исправить?
|
#2
|
||||
|
||||
Эта ошибка вылетает при попытке обработки событий нетипичных для данного класса - тело цикла лучше покажите
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
crazyman (14.05.2017)
|
#3
|
|||
|
|||
Цитата:
Последний раз редактировалось crazyman, 14.05.2017 в 20:59. |
#4
|
|||
|
|||
как-то сложно все написано, можно было гораздо проще и компактнее
|
#5
|
|||
|
|||
Цитата:
|
#6
|
|||
|
|||
Цитата:
Код:
procedure TForm1.SpinEditDown(Sender: TObject); var i:integer; x,y:double; begin series1.Clear; series2.Clear; for i:=0 to 5 do begin x:=x+1; y:=strtoint((Components[i] as TEdit).text); series1.AddXY(x,y); series2.AddXY(x,y); end; Последний раз редактировалось lmikle, 18.05.2017 в 19:16. |
#7
|
||||
|
||||
В Components не только Edit'ы. Если есть as то должен быть is. В справке все есть.
Пишу программы за еду. __________________ |
#8
|
|||
|
|||
Не, тут другое. Кто сказал, что первые 5 компонентов будут именно твоими Edit'ами??? Никто это гарантировать не может. Так что должно быть так:
Код:
procedure TForm1.SpinEditDown(Sender: TObject); var i:integer; x,y:double; e : TEdit; begin series1.Clear; series2.Clear; for i:=0 to 5 do begin e := TEdit(FindComponent('Edit' + IntToStr(i))); if e = Nil then continue; x:=x+1; y:=strtoint(e.text); series1.AddXY(x,y); series2.AddXY(x,y); end; end; ЗЫ. А хто х инициализировать будет??? |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
crazyman (18.05.2017)
|
#9
|
|||
|
|||
Ага) то что нужно! Спс за ответ.
|