Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.046 c
3-1083691075
Крутыш
2004-05-04 21:17
2004.05.30
Всем кто использует Sybase.


14-1084020350
Тимохов
2004-05-08 16:45
2004.05.30
packed array


3-1084283277
nova
2004-05-11 17:47
2004.05.30
Список серваков sql server в delphi


7-1082463805
YuRock
2004-04-20 16:23
2004.05.30
Доступ к COM порту по сети


9-1074649900
Barlok
2004-01-21 04:51
2004.05.30
экспорт из 3d studio max?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский