...
const
Symbols: Array[0..2] of String = ('copy', 'deletefile', 'save'); // слова
функций.
Parameters: Array[0..2] of String = ('copy (Input: String, Output: String)',
'deletefile (FileName: String)', 'save (FileName: String)'); //Описание
параметров функции.
...
procedure TForm1.RichEdit1Change(Sender: TObject);
var
S, S2: String;
I: Integer;
begin
S:=RichEdit1.Lines.Text;
if Pos('(', S) > 0 then
begin
for I:=0 to 2 do
begin
S2:=Copy(S, Pos('(', S)-Length(Symbols), Length(Symbols));
if S2=Symbols then
begin
Panel1.Caption:=Parameters;
Panel1.Left:=28+(8*RichEdit1.CaretPos.X);
Panel1.Top:=(16*RichEdit1.CaretPos.Y)-5;
Panel1.Visible:=True;
end;
end;
end
else
S2:='';
Panel1.Visble:=False;
end;
Подсветка параметров функции
Вот что я сделал:
Код:
Parent Panel1 на форме. Но возикла проблема: Например, когда каретка по Y > 17, то получается что Top у Panel1 увеличивается и она выходит за рамки RichEdit'a. Тоже самое происходит с Panel1.Left. Left у Panel1 увиличивается и панель уходит за рамки. Как можно запретить панели не выходить за рамки RichEdit'a, при условии что ее Top и Left увеличиваются ? Спасибо !
[color=red]используй [ code ] [ /code ]. Модератор.[/color]