Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-52032
TankMan
2002-11-05 12:24
2002.12.16
Как узнать, приоритет любой программы?


14-51966
Sticky
2002-11-26 21:21
2002.12.16
Как сделать архиватор?


7-51977
isc
2002-10-15 22:50
2002.12.16
Вопрос для профессионалов


14-51892
sancho
2002-11-23 17:34
2002.12.16
freepascal


1-51825
HP
2002-12-05 11:14
2002.12.16
FastReprt





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский