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

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

Список функций как в Delphi по Ctrl+Space


___Nikolay ©   (2002-12-02 21:09:00) 

Скажите, пожалуйста, кто с этим сталкивался?
Как можно в списке ( TListBox) на одной строке писать разными
шрифтами, как это сделали в Delphi:

слово function- синим цветом
слово var- малиновым
название функции- чёрным, шрифт полужирный
список параметров- чёрный, неполужирный
и т.д.


___Nikolay   (2002-12-04 19:42:00) [1]

ВСЁ!!! ПОЛУЧИЛОСЬ!!! Спасибо всем, кто принимал участие в дискуссии :)

Если кого-то тоже волнует эта проблема - вот исходник (выводим картинку и надписи разными цветами для каждого элемента списка):

procedure TMainForm.lbDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
VAR
Bitmap : TBitmap;
Offset : Integer;
BMPRect: TRect;
begin
WITH lb.Canvas DO BEGIN
FillRect(Rect);
Bitmap := TBitmap.Create;
Bitmap.Assign(li_Image.Picture);
Offset := 0;
if odSelected in State then
Brush.Color:=$00A47A55
else
Brush.Color:=clWhite;
FillRect(Rect);
IF Bitmap <> NIL THEN BEGIN
BMPRect := Bounds(Rect.Left+2, Rect.Top+2,
(Rect.Bottom-Rect.Top-2), Rect.Bottom-Rect.Top-2);
BrushCopy(BMPRect,Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height),
Bitmap.Canvas.Pixels[0, Bitmap.Height-1]);
Offset := (Rect.Bottom-Rect.Top+1)+5;
END;
Font.Style:=Font.Style+[fsBold];
TextOut(Rect.Left+Offset, Rect.Top+4, lb.Items[Index]);
if odSelected in State then
Font.Color:=clWhite
else
Font.Color:=clMaroon;
Font.Style:=Font.Style-[fsBold];
TextOut(Rect.Left+Offset, Rect.Top+4, " function ");
Bitmap.Free;
END;
end;


___Nikolay   (2002-12-04 05:37:00) [2]

Song
Опубликуй, пожалуйста, ПРИМЕР :)


Calm   (2002-12-03 11:05:00) [3]

Я написал такой компонент.
Но в нем есть несколько глюков. Точнее, не глюков, а две недоделки.
Если интересует - могу выслать

ЗЫ Ну глюки может тоже есть, сразу же не определишь :(


Song   (2002-12-03 10:03:00) [4]

Дык, а чего сложного-то?

TListBox.onDrawItem+csOwnerDrawFixed


___Nikolay   (2002-12-03 09:47:00) [5]

ЛЮДИ!!! Может кто-нибудь уже делал что-нибудь подобное?


Cobalt   (2002-12-03 01:16:00) [6]

А самому? Я не работал в этой области, но имею общее представление. А вот тебеэто интересно. Вот и изучай.
С уважением.


___Nikolay   (2002-12-02 22:08:00) [7]

Cobalt
Если можно - ПРИМЕРЧИК !!!

Мне нужно, чтобы на одной строке запись такого типа

function GetTextBuf(Buffer:PChar; BufSize:Integer):Integer;

была написана так:
1) Слово function- синим цветом
2) Слово GetTextBuf- чёрным цветом, полужирным шрифтом
3) Остальное - чёрным цветом, обычным неполужирным шрифтом


Cobalt   (2002-12-02 21:37:00) [8]

См. TCustomListBox.OnMeasureItem


___Nikolay   (2002-12-02 21:28:00) [9]

Может они не списокиспользуют, а какой другой компонент? Например, RichEdit...
А как же с ним позволять выбирать, т.е. выделять, нужную строку?


Наверх

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