|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Ошибка при выполнении
Создаю собственную процедуру, в ней имеются строки:
Poisk_In_File:=TEdit('Edit'+IntToStr(Tek_Page)+Poi sk_True[2]).Text; TEdit(FindComponent('Edit'+IntTostr(Tek)+IntToStr( z))).Text:=E_Stroka; Прикомпиляции ошибок нет, но при запуске возникает ошибки ссылающиеся на эти строки. Если внести эти строки, напрамер, в нутрь procedure TForm1.FormCreate(Sender: TObject); или procedure TForm1.Button1Click(Sender: TObject); то все нормально. Я так понял, что-то я не правильно определяю процедуру.... Подскажите плиз.... |
#2
|
||||
|
||||
Если можешь, покажи всю процедуру.
Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#3
|
|||
|
|||
Код:
ROCEDURE FILLING_COMBOBOX_FILE(Tek_Page: integer); Var Poisk_True, Poisk_In_File, S, Iskom_Str: string; F: TextFile; BEGIN for i:=1 to PG[Tek_Page].ComboBox_Count do Begin Poisk_True:=PG[Tek_Page].Info_ComboBox[i].Poisk; If Poisk_True[1]='E' then Begin//If AssignFile(F, PG[Tek_Page].Info_ComboBox[i].TextFile); Reset(F); Readln(F, S); Poisk_In_File:='W510'; // Poisk_In_File:=TEdit('Edit'+IntToStr(Tek_Page)+Poisk_True[2]).Text; Form1.Edit1.Text:=TEdit('Edit'+IntToStr(Tek_Page)+Poisk_True[2]).Text; if Pos(Poisk_In_File,S)<>0 then Begin for j:=Length('W510') to Length(S) do begin If s[j]<>' ' then Iskom_Str:=Iskom_Str+s[j] Else begin If Length(Iskom_Str)>0 then Form1.Edit1.Text:=Form1.Edit1.Text+IntToStr(8) Else Iskom_Str:=''; end; end; End; CloseFile(F); End;//If End; //TComboBox('ComboBox'+IntToStr(Tek)+).Text:=''; END; |
#4
|
||||
|
||||
А куда ты ее написал?
Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#5
|
|||
|
|||
После
implementation Если я правильно вопрос понял Вызывается после нажатия кнопки |
#6
|
||||
|
||||
Не совсем понял
Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#7
|
||||
|
||||
Цитата:
Код:
Poisk_In_File:=TEdit('Edit'+IntToStr(Tek_Page)+Poi sk_True[2]).Text; строкой нельзя манипулировать как Эдитом. Код:
TEdit(FindComponent('Edit'+IntTostr(Tek)+IntToStr(z))).Text:=E_Stroka; |
#8
|
|||
|
|||
В общем как сделать так, чтобы при нажатии кнопки не вылазила ошибка, т.е. что-то я не правильно определяю....
На форме Edit1, остальные Edit'ы создаются динамически. Код:
implementation uses Unit2; ...... функции ...... PROCEDURE FILLING_COMBOBOX_FILE; Begin Form1.Edit1.Text:='1'; //Работает TEdit('Edit'+IntToStr(1)+IntToStr(1)).Text:='1';//Компилируется, но при выполнении выдается ошибка End; ..... procedure TForm1.Button2Click(Sender: TObject); begin PROCEDURE FILLING_COMBOBOX_FILE; end; .... |
#9
|
||||
|
||||
Код:
implementation uses Unit2; ...... функции ..... procedure TForm1.Button2Click(Sender: TObject); PROCEDURE FILLING_COMBOBOX_FILE; Begin Form1.Edit1.Text:='1'; //Работает TEdit(FindComponent('Edit'+IntToStr(1)+IntToStr(1))).Text:='1';//Компилируется, но при выполнении выдается ошибка End; begin PROCEDURE FILLING_COMBOBOX_FILE; end; .... Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. Последний раз редактировалось The Shadow, 01.04.2008 в 13:20. |
#10
|
||||
|
||||
Код:
TEdit('Edit'+IntToStr(1)+IntToStr(1)).Text:='1'; Код:
TEdit('Edit11').Text:='1'; TEdit(var) - не ищет компонент по имени а пытается с памятью переменной работать как с TEdit |
#11
|
|||
|
|||
Если сделать так, то все нормально
Код:
implementation uses Unit2; ...... функции ...... procedure TForm1.Button2Click(Sender: TObject); begin TEdit('Edit'+IntToStr(1)+IntToStr(1)).Text:='1';// end; |
#12
|
||||
|
||||
Не может быть. Как ты String в TEdit переводишь?
Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#13
|
|||
|
|||
Ошибся, т.е. IntToStr(1);
|
#14
|
||||
|
||||
Я не про то. Надо
Код:
TEdit(FindComponent('Edit'+IntToStr(1)+IntToStr(1))).Text:='1'; Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#15
|
|||
|
|||
Если пишу TEdit(FindComponent('Edit'+IntToStr(1)+IntToStr(1) )).Text:='1';
Т.е. использую FindComponent, при компиляции ошибка - [Error] Unit1.pas(116): Udeclared identifier: 'Find Component' Это происходит когда этот код находится в моей процедуре, а если в "стандартных", типа procedure TForm1.FormCreate(Sender: TObject); или procedure TForm1.Button2Click(Sender: TObject); то все нормально работает... |