Главная страница
    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.47 MB
Время: 0.008 c
1-51682
avsh
2002-12-05 18:57
2002.12.16
TImage


1-51746
Alexei113
2002-12-03 23:05
2002.12.16
Помогите с контекстным меню...


6-51855
delpher_gray
2002-10-16 13:09
2002.12.16
Передача файлов через сокеты


4-52001
Lexa1900
2002-11-03 23:29
2002.12.16
Как получить hwnd активного окна?


3-51648
Юлия
2002-11-26 17:16
2002.12.16
Вычислимые поля





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский