Вопрос по редактору кода в дизайнере.
В форме CodeCompletion выводятся не все объекты. Все (в месте с функциями и тд.) можно показывать?
В принцыпе просто делается
if members.Count = 0 then
begin
List.Clear;
l := Report.AllObjects;
for i := 0 to l.Count - 1 do
List.AddObject(TfrxComponent(l).Name + ' : ' + TfrxComponent(l).ClassName, nil);
members.Free;
for i := 0 to Report.Script.Count - 1 do
begin
v:= Report.Script.Items;
if (v is TfsMethodHelper) then
begin
s:= TfsMethodHelper(v).Syntax;
if Pos('procedure', s) = 1 then
begin
Delete(s, 1, 10);
j := 2;
end;
if Pos('function', s) = 1 then
begin
Delete(s, 1, 9);
j := 3;
end;
List.AddObject(s, TObject(j));
end;
end;
Exit;
end;
В принцыпе просто делается
if members.Count = 0 then
begin
List.Clear;
l := Report.AllObjects;
for i := 0 to l.Count - 1 do
List.AddObject(TfrxComponent(l).Name + ' : ' + TfrxComponent(l).ClassName, nil);
members.Free;
for i := 0 to Report.Script.Count - 1 do
begin
v:= Report.Script.Items;
if (v is TfsMethodHelper) then
begin
s:= TfsMethodHelper(v).Syntax;
if Pos('procedure', s) = 1 then
begin
Delete(s, 1, 10);
j := 2;
end;
if Pos('function', s) = 1 then
begin
Delete(s, 1, 9);
j := 3;
end;
List.AddObject(s, TObject(j));
end;
end;
Exit;
end;
Комментарии
TfrxMemoView(Sender).Text := |
| - это курсор, попробуйте нажать ctrl+bkspace, получится вот такая интересная штука: TfrxMemoView(Sender).| :=
Про всякие привычные фишки, типа вертикального выделения блока текста или удаления слова перед курсором и многих других говорить тоже пока не приходится..
Хотелки:
1. В CodeCompletion пусть отображается ВСЕ, т.к. контекстный список вообще пустой. Ну и доработать ввод, чтоб не только по первой букве искал, а по мере ввода текста;
2. Перетаскивание текста мышкой и вообще позиционирование курсора в тексте хромает (например, при перетаскивании элемента из дерева данных он обязательно встанет не в ту позицию, куда ему указываешь);
Для тех, кто занимается встраиванием в свои приложения редакторов кода, рекомендую набор компонент SynEdit
Проект SynEdit на SouceForge и Вариант SynEdit с поддержкой Unicode
А по поводу выгоды... дописать редактор в FastReport.
там сам редактор, подсветка синтаксиса программируется под любой язык, экранный элемент для автозавершения идентификаторов при вводе, рисования меток на полях редактора и т.п.
короче удобный набор графических компонент для интеграции с любыми трансляторами.
собственно самих средств трансляции и выполнения скриптов там нет.