Форум: "Основная";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
ВнизСписок функций как в Delphi по Ctrl+Space Найти похожие ветки
← →
___Nikolay (2002-12-02 21:09) [0]Скажите, пожалуйста, кто с этим сталкивался?
Как можно в списке ( TListBox) на одной строке писать разными
шрифтами, как это сделали в Delphi:
слово function - синим цветом
слово var - малиновым
название функции - чёрным, шрифт полужирный
список параметров - чёрный, неполужирный
и т.д.
← →
___Nikolay (2002-12-02 21:28) [1]Может они не список используют, а какой другой компонент? Например, RichEdit...
А как же с ним позволять выбирать, т.е. выделять, нужную строку?
← →
Cobalt (2002-12-02 21:37) [2]См. TCustomListBox.OnMeasureItem
← →
___Nikolay (2002-12-02 22:08) [3]Cobalt
Если можно - ПРИМЕРЧИК !!!
Мне нужно, чтобы на одной строке запись такого типа
function GetTextBuf(Buffer:PChar; BufSize:Integer):Integer;
была написана так:
1) Слово function - синим цветом
2) Слово GetTextBuf - чёрным цветом, полужирным шрифтом
3) Остальное - чёрным цветом, обычным неполужирным шрифтом
← →
Cobalt (2002-12-03 01:16) [4]А самому? Я не работал в этой области, но имею общее представление. А вот тебе это интересно. Вот и изучай.
С уважением.
← →
___Nikolay (2002-12-03 09:47) [5]ЛЮДИ!!! Может кто-нибудь уже делал что-нибудь подобное?
← →
Song (2002-12-03 10:03) [6]Дык, а чего сложного-то?
TListBox.onDrawItem+csOwnerDrawFixed
← →
Calm (2002-12-03 11:05) [7]Я написал такой компонент.
Но в нем есть несколько глюков. Точнее, не глюков, а две недоделки.
Если интересует - могу выслать
ЗЫ Ну глюки может тоже есть, сразу же не определишь :(
← →
___Nikolay (2002-12-04 05:37) [8]Song
Опубликуй, пожалуйста, ПРИМЕР :)
← →
___Nikolay (2002-12-04 19:42) [9]ВСЁ!!! ПОЛУЧИЛОСЬ!!! Спасибо всем, кто принимал участие в дискуссии :)
Если кого-то тоже волнует эта проблема - вот исходник (выводим картинку и надписи разными цветами для каждого элемента списка):
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;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c