Создание компонента по типу EDIT

аватар: SkOle
Звание: Наблюдатель
Сообщений: 6

Доброго времени суток, форумчане.

Встала необходимость оздания компонента типа TEdit с нуля. Может у кого есть чтиво, каким образом реализовать ввод текста (описание работы каретки и пр.) Может у кого есть готовый пример. Создание наследника TCustomEdit или встранивание TEdit и перехват сообщений от него не интересует.
Заранее спасибо за любую информацию.

аватар: DirectoriX
Звание: Мастер
Сообщений: 1278

Тут, скорее всего, WinAPI придётся ковырять. И то там готовое поле ввода.

аватар: SkOle
Звание: Наблюдатель
Сообщений: 6

DirectoriX написал(а):

Тут, скорее всего, WinAPI придётся ковырять. И то там готовое поле ввода.

пример можно?

аватар: Nik RON
Звание: Советник
Сообщений: 670

Олег, снова изобретаешь велосипед? Ты тогда уж в сторону FMX посмотри - там вкусностей много имеется..

аватар: SkOle
Звание: Наблюдатель
Сообщений: 6

Нет, допиливаю... FMX не впечатлил...

аватар: raxp
Звание: Мастер
Сообщений: 1089

WinAPI наше все. Cоздаем:

edit := CreateWindow('EDIT', 'Edit1',
                                  WS_VISIBLE or WS_CHILD or WS_DLGFRAME or
                                  ES_AUTOHSCROLL, // без multiline - однострочный ввод
                                  x, y+300, Width, 25, handle, 0, hInstance, nil);
 
 
   SendMessage(Edit, WM_CTLCOLOREDIT, handle, Edit);

Раскрашиваем:

Function WindowProc(HWND,{Процедура обработки сообщений  }
                    Msg,
                    wParam,
                    lParam: Longint): Longint;
 Stdcall;
 
 Begin
   Result := DefWindowProc(HWND, Msg, wParam, lParam);
 
 
   Case Msg Of
 
   WM_CTLCOLOREDIT: begin
    if (lParam = Edit) then begin
                             SetBkColor(HDC(wParam), rgb(0,234,123)); //цвет строки
                             settextcolor(HDC(wParam), rgb(255,234,123)); //цвет текста
                             result:=longint(CreateSolidBrush(rgb(0,234,123))); // цвет всего
                            end;
 
 
   End;
 End;

Результат:

__________________

Team Lead Radar systems engineer & FPGA software developer
]]>Видео]]>]]>блог]]>

аватар: Endriuse
Звание: Наблюдатель
Сообщений: 3

Спасибо большое. Это я и искал