Работа с текстовыми полями Edit1.Text из своих процедур в Lazarus
Хочу сделать функцию очистки текстовых полей, т.к. одно и то же действие предполагается делать при помощи двух кнопок (кнопкой очистить и после сохранения текстового файла) - то это уменьшит размер кода. Для этого делаю процедуру:
procedure Edit_Clear();
begin
Edit1.Text:='';
end;
И вызываю ее после нажатия кнопки:
procedure TForm1.Clear_BtnClick(Sender: TObject);
begin
Edit_Clear()
end;
Но Lazarus при компиляции говорит что переменная Edit1 не найдена (unit1.pas(190,3) Error: Identifier not found "Edit1" ). При этом если работать с ней в стандартной функции, которую генерирует Lazarus - она выполняется.
Как сделать свою функцию, которая могла бы работать с текстовым полем?
Ответы (2 шт):
Сделайте метод формы - объявите Edit_Clear() в public разделе формы, и сгенерируйте имплементацию (в Delphi это делается CTRL-SHIFT-C, если у вас нет такого шортката, то другой должен быть или просто руками)
procedure TForm1.Edit_Clear();
Внутри метода будут видны поля формы.
Иначе, если вы хотите иметь standalone процедуру (не метод) (хотя в данном случае смысла в этом нет), вам придётся обращаться к полям формы через Form1.Edit1 (Form1 обычно объявлено в var разделе, но может быть и удалено оттуда программистом)
Так может быть или я не понял вопроса?
procedure Edit_Clear(var edit0: Tedit);
begin
Edit0.Text:='';
end;
Использовать тогда
procedure TForm1.Clear_BtnClick(Sender: TObject);
begin
Edit_Clear(edit1);
end;