Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в edit отображать буквы разных цветов? [D5, WinME, Win2k]


Kirilius ©   (2003-08-11 23:45:00) 

Уважаемые Мастера !!!
Подскажите пожалуйста как в edit отображать буквы разных цветов?
Если можно с примерчиками, или хотябы подскажите куда копать!

Var
...
hEdit:HWND;
...
hEdit:=CreateWindowEx(WS_EX_CLIENTEDGE,"Edit","",
WS_VISIBLE or WS_CHILD or
ES_MULTILINE or ES_AUTOVSCROLL,
1,1,538,380-31,Handle,0,hInst,nil);
...


Song   (2003-08-18 09:06:00) [1]

WM_CTLCOLOREDIT


Kirilius   (2003-08-17 12:59:00) [2]

А мне будет полезна любая инфа на эту тему!

Все равно всем спасибо!!!


KSergey   (2003-08-16 14:59:00) [3]

Kirilius (16.08.03 14:04)
>> Сергеич (15.08.03 12:54)
Если можно!
turkirill@narod.ru


Не понимаю: вы же просили на API, а человек предлагает компоненту, т.е. уже это не API-шный Edit по определению.
Я что-то недопонимаю? Или зачем тогда было спрашивать именно про API?


Kirilius   (2003-08-16 14:04:00) [4]

>> Сергеич (15.08.03 12:54)
Если можно!
turkirill@narod.ru


Сергеич   (2003-08-15 12:54:00) [5]

Есть готовая компонента Лейтиса, с примером.
И моя доработка для форматиров. ввода, как в ДОСовском кларионе.
Могу выслать


Melamed   (2003-08-14 16:13:00) [6]

Извините ошибка
Вместо строки
c := TCanvas.Create;
Должна быть строка
с := TCanvasControl.Create;


Melamed   (2003-08-14 16:10:00) [7]

А не лучше бы в данном коде использовать класс TCanvasControl, потомок класса TCanvas. В этом случае данный код принимает следующий вид.

procedureTForm1.Button1Click(Sender: TObject);
var
c : TCanvasControl;
x, W : Integer;
begin
c := TCanvas.Create;
c.Control:=Edit1;
try
W:=0;
forx := 1 toLength(Edit1.Text) do
begin
c.Font.Color := Random($00FFFFF);
c.Font.Size:=Edit1.Font.Size;
c.Brush.Style:=bsSolid;
c.TextHeight(Edit1.Text);
c.TextWidth(Edit1.Text);
// X=1;Y=1, for border
c.TextOut(W+1,1,Edit1.Text[x]);
W:=W+c.TextWidth(Edit1.Text[x]);
end;
finally
c.Free;
end;
end;

end.

И этот код доолжен быть в обрабодчике системного сообщения WM_PAINT редактора, в нашем случае Edit1


Andriy   (2003-08-14 10:13:00) [8]

>>Kirilius (11.08.03 23:45)
Работает! Пользуйся на здоровье!

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
c : TCanvas;
EditDc : HDC;
x, W : Integer;
begin
c := TCanvas.Create;
EditDc := GetDc(Edit1.Handle);
c.handle := EditDc;
W:=0;
for x := 1 To Length(Edit1.Text) do
begin
c.Font.Color := Random($00FFFFF);
c.Font.Size:=Edit1.Font.Size;
c.Brush.Style:=bsSolid;
c.TextHeight(Edit1.Text);
c.TextWidth(Edit1.Text);
//X=1;Y=1, for border
c.TextOut(W+1,1,Edit1.Text[x]);
W:=W+c.TextWidth(Edit1.Text[x]);
end;
Releasedc(Form1.Handle,Form1.Canvas.Handle);
c.Free;
end;

end.


Крот   (2003-08-13 05:58:00) [9]

Выбираешь в контексте твоего окна фонт, цвет текста, и TextOut


Kirilius   (2003-08-12 21:50:00) [10]

Конечно Edit был subclassed !
А вот как на счет букв разного цвета ?
Как мне это реализовать!?
Даже не обязательно в Edit, киньте плиз пример как вывести
хотя-бы букву на форме любым цветом (не черным и не из стандартной палитры Windows).
PS: Да и соотвецтвенно на Api!!!


Игорь Шевченко   (2003-08-12 10:56:00) [11]

nikkie © (12.08.03 10:23)

Разумеется subclassed :)) Может, и изврат, но делали для операторов, чтобы латинские буквы были другого цвета, чем русские - часть ошибок ввода сразу исчезла :)


nikkie   (2003-08-12 10:23:00) [12]

>Игорь Шевченко
если wndclass был у него edit и он был не subclassed, то что-то с трудом мне верится...


Игорь Шевченко   (2003-08-12 09:45:00) [13]

Kirilius (11.08.03 23:45)

Использовать RichEdit и не мучиться

nikkie © (12.08.03 00:48)

Я видел :)


nikkie   (2003-08-12 00:48:00) [14]

А ты когда-нибудь видел edit с разноцветными буквами?


Наверх

Титульная страница Поиск, карта сайта Написать письмо