![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#31
|
||||
|
||||
|
Вот не надо ля-ля если не знаешь, в дельфи не так, в дельфи графически все рисуется. А автоматы еще никто не отменял.
|
|
#32
|
||||
|
||||
|
неужели в делфи каждый символ програмная отрисовка. Мне нужна все волишь красить текст в риче гдето видел редактор а вот он нашел. чтото на подобие этого
http://www.moddb.com/games/knights-a...-script-editor |
|
#33
|
||||
|
||||
|
Цитата:
Цитата:
|
|
#34
|
||||
|
||||
|
Посмотри как в SynEdit выводится.
|
|
#35
|
||||
|
||||
|
говорю нет компонента не устанавливается на XE3
|
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
AlexandrV (24.06.2013)
| ||
|
#37
|
||||
|
||||
|
Цитата:
|
|
#38
|
||||
|
||||
|
Цитата:
А как стиль SynEdit применить на рич просто у SynEditа неудобный memo. он как у делфи а мне нужен как у текстового редактора Установиться установилась но если положить компонент на форму то вот ошибки Код:
[dcc32 Error] SynUnicode.pas(1679): E2010 Incompatible types: 'AnsiChar' and 'Char' [dcc32 Error] SynUnicode.pas(1686): E2010 Incompatible types: 'AnsiChar' and 'Char' [dcc32 Error] SynUnicode.pas(1687): E2010 Incompatible types: 'AnsiChar' and 'Char' [dcc32 Error] SynUnicode.pas(1688): E2010 Incompatible types: 'AnsiChar' and 'Char' [dcc32 Error] SynUnicode.pas(1695): E2010 Incompatible types: 'AnsiChar' and 'Char' [dcc32 Error] SynUnicode.pas(1696): E2010 Incompatible types: 'AnsiChar' and 'Char' вот код реализованной покраски для слова Begin Код:
procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char);
var stroca:integer;
begin
case key of
#32:begin
if Form1.RichEdit1.Text[Length(Form1.RichEdit1.Text)]=#32 then exit else begin
stroca:=Length(Form1.RichEdit1.Text);
repeat
stroca:=stroca-1;
until (Form1.RichEdit1.Text[stroca]=#32) or (stroca=0);
Form1.RichEdit1.SelStart:=stroca;
Form1.RichEdit1.SelLength:=Length(Form1.RichEdit1.Text);
if AnsiUpperCase(Form1.RichEdit1.SelText) = 'BEGIN' then
Form1.RichEdit1.SelAttributes.Color:=ClBlue
else Form1.RichEdit1.SelAttributes.Color:=ClBlack;
Form1.RichEdit1.SelStart:=Length(Form1.RichEdit1.Text);
end;
end;
end;
end;багов пока не нашел. Собственно осталось встроить поддержку коминтариев и все Извините. Сообщения просьба удалить. Последний раз редактировалось M.A.D.M.A.N., 26.06.2013 в 07:19. |
|
#39
|
||||
|
||||
|
Почему этот код
Код:
procedure TForm2.RED1KeyPress(Sender: TObject; var Key: Char);
var stroca:integer;
i:Integer;
begin
case key of
#32:begin
if Form2.RED1.Text[Length(Form2.RED1.Text)]=#32 then System.exit else begin
stroca:=Length(Form2.RED1.Text);
repeat
stroca:=stroca-1;
until (Form2.RED1.Text[stroca]=#32) or (stroca=0);
Form2.RED1.SelStart:=stroca;
Form2.RED1.SelLength:=Length(Form2.RED1.Text);
for i := 0 to Length(ColorText) do begin
if AnsiUpperCase(Form2.RED1.SelText) = ColorText[i].ColText then begin
Form2.RED1.SelAttributes.Color:=ColorText[i].ColColor;
Form2.RED1.SelAttributes.Style:=ColorText[i].ColFontStyle;
end
else begin
Form2.RED1.SelAttributes.Color:=Form2.FontDialog1.Font.Color;
Form2.RED1.SelAttributes.Style:=Form2.FontDialog1.Font.Style;
end;
Form2.RED1.SelStart:=Length(Form2.RED1.Text);
end;
end;
end;
end;
end;
ColorText[0].ColText:=AnsiUpperCase(PRK1);
ColorText[0].ColColor:=ClBlue;
ColorText[0].ColFontStyle:=[fsbold];
ColorText[1].ColText:=':';
ColorText[1].ColColor:=clGreen;
ColorText[1].ColFontStyle:=[fsBold];
ColorText[2].ColText:='|';
ColorText[2].ColColor:=ClRed;
ColorText[2].ColFontStyle:=[fsBold];
ColorText:Array[0..2] of TColorText;
Type TColorText=record
ColText:String;
ColColor:TColor;
ColFontStyle:TFontStyles;
end;красит только 1 слово Begin |
|
#40
|
||||
|
||||
|
Молодой человек, вы козерог?
|
|
#41
|
||||
|
||||
|
Цитата:
|
|
#42
|
||||
|
||||
|
Я хочу этот код доработать а не писать другой. Способ при том здесь гораздо проще
|