![]() |
Обнуление RichEdit.Text через процедуру с параметрами (Delphi)
У меня есть 8 форм типа RichEdit. Хочу создать несколько кнопок, по нажатию которой текст в сразу нескольких формах обнулялся. Ясно, что можно сделать, например, так:
Код:
RichEdit.Text:='';Код:
Procedure Rev(var a:String; b:String);Цитата:
|
Interceptor
Тебе надо передавать в процедуру не сами строки, а указатели на RichEdit'ы, а уже в самой процедуре обнулять им св-ва Text. |
Interceptor
Во-первых, для обнуления TRichEdit нужно использовать его метод Clear. Например RichEdit1.Clear. Во вторых, естественнов том виде, в котором ты написал процедуру, компилятор будет тебя ругать нехорошими словами, т.к. у тебя идет не совпадение типов. Если использовать твою процедуру, то можно написать так Rev(RichEdit1.Lines[номер строки], RichEdit2.Lines[номер строки]), но лучше, все-таки, чистить через Clear. Вот например процедура, которая найдет на указанной форме все ричи и очистит их: procedure ClearReaches(fm: TForm); var i: Cardinal; begin for i:=0 to fm.ControlCount-1 do if fm.Controls[i].ClassNameIs('TRichEdit') then (fm.Controls[i] as TRichEdit).Clear; end; procedure TForm1.Button1Click(Sender: TObject); begin ClearReaches(Form1); end; |
ЕЖ
Попытался сделать как ты сказал: Код:
Procedure Rev(var a:PString; b:PString; c :PString);/7y3uK Цитата:
Тем более, что типы у меня совпадают: просто я юзаю не VCL библиотеку, а её замену. И там RichEdit.Text имеет тип String. Цитата:
|
Нет, я не понимаю... а что нет метода Clear? не может такого быть.
procedure ClrRich(a,b: TRichEdit); begin a.Clear; b.Clear; end; procedure TForm1.Button1Click(Sender: TObject); begin ClrRich(RichEdit1,RichEdit2); end; А так попробуй у себя в коде из топика в процедуре VAR стереть, и должно все заработать. |
/7y3uK
Цитата:
|
Interceptor
Я как раз и имел введу то, что вы сделали с /7y3uK в последних двух постах: передавать в процедуру указатель на сам RichEdit, а не на RichEdit1.Text. Когда ты ставишь var ("работать с реальными переменными"), ты фактически передаешь процедуре указатель на объект TRichEdit, а в процедуре вызываешь его метод очистки. |
| Часовой пояс GMT +4, время: 09:14. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.