Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Динамическая работа с компнентами   Найти похожие ветки 

 
finger   (2004-05-20 13:03) [0]

Проблема вот в чем у TSynEdit есть функция дл подсветки строк (например как ошибка в дельфи)
Если компонент лежит на форме, то такой код работает

procedure TForm1.TSynEdit1SpecialLineColors(Sender: TObject; Line: Integer;
 var Special: Boolean; var FG, BG: TColor);
begin
if (Line = StrToInt(Edit1.Text)) and (ErrState) then
begin
 FG := clWhite;
 BG := clMaroon;
end;
end;


НО у меня на форме лежит PageControl и synedit`ы создаются динамически
и эта функция никак не хочет работать, причем она исполняется, но в synedit`е ничего не подсвечивается (проверял, ставя точки останова)

procedure TForm1.btnErrorClick(Sender: TObject);
var
Spcl: Boolean;
BG,FG: TColor;
begin
Spcl:= False;
FG := clWhite;
BG := clMaroon;

ErrState:= not ErrState;
TSynEdit(PageControl1.ActivePage.Controls[0]).OnSpecialLineColors:=SynEditSpecialLineColors;
if ErrState then btnError.Caption := "Error (true)" else btnError.Caption := "Error (false)";
TSynEdit(PageControl1.ActivePage.Controls[0]).Repaint;
TSynEdit(PageControl1.ActivePage.Controls[0]).SetFocus;
end;

procedure TForm1.TSynEdit1SpecialLineColors(Sender: TObject; Line: Integer;
 var Special: Boolean; var FG, BG: TColor);
begin
if (Line = StrToInt(Edit1.Text)) and (ErrState) then
begin
 FG := clWhite;
 BG := clMaroon;
end;
end;


Пытался вызывать эту функцию (в том же btnErrorClick)
SynEditSpecialLineColors(TSynEdit(PageControl1.ActivePage.Controls[0]),StrToInt(Edit1.Text),Spcl,FG,BG);
и так SynEditSpecialLineColors(Self,StrToInt(Edit1.Text),Spcl,FG,BG);
ничего не работает.

Так же присваивал эту функцию на динамическом создании synedit`а - ничего не произошло

function TForm1.OpenFile(FileName: String): TSynEdit;
var
TabSheet:TTabSheet;
s: string;
begin
 TabSheet:=TTabSheet.Create(PageControl1);
 TabSheet.PageControl:= PageControl1;
 PageControl1.ActivePage:=TabSheet;
 Result.OnSpecialLineColors:=SynEditSpecialLineColors
 Result:=TSynEdit.Create(TabSheet);
 Result.Parent:=TabSheet;
 Result.Highlighter:= SynGeneralSyn1;
 Result.Align:=alClient;
 Result.Gutter.ShowLineNumbers:= true;
 Result.Gutter.LeftOffset:= 0;
 
   <...>
end;


Как заставить эту функцию работать? Заранее благодарен за помощь.


 
MU ©   (2004-05-20 13:09) [1]

var
TabSheet:TTabSheet;
s: string;
begin
TabSheet:=TTabSheet.Create(PageControl1);
TabSheet.PageControl:= PageControl1;
PageControl1.ActivePage:=TabSheet;
Result:=TSynEdit.Create(TabSheet);
Result.Parent:=TabSheet;
Result.Highlighter:= SynGeneralSyn1;
Result.Align:=alClient;
Result.Gutter.ShowLineNumbers:= true;
Result.Gutter.LeftOffset:= 0;
Result.OnSpecialLineColors:=SynEditSpecialLineColors;

  <...>
end;



Страницы: 1 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.036 c
7-1082527197
ASMiD
2004-04-21 09:59
2004.05.30
Delphi и 3D ускорители


7-1082635985
ashnurov
2004-04-22 16:13
2004.05.30
Bios


6-1081421371
Артем
2004-04-08 14:49
2004.05.30
Дата обновления сайта


1-1084535443
Stas
2004-05-14 15:50
2004.05.30
Как узнать удален компонент или нет


4-1082050767
Narayan
2004-04-15 21:39
2004.05.30
создание кнопки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский