Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];

Вниз

перерисовка combobox   Найти похожие ветки 

 
Nick87   (2008-09-23 15:57) [0]

помогите с кодом перерисовки combobox.

procedure TForm1.cmp_ComboBoxDrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
var
 C: TControlCanvas;
 R: TRect;
begin
 // ...
 
C.TextOut(20, 3, cmp_ComboBox.Items[Index]);
 C.StretchDraw(R, B);

//. ..
end;

при открытии выпадающего списка ничего не перерисовывается остаеться белая область помогите исправить


 
Palladin ©   (2008-09-23 15:59) [1]

стиль то поменял?


 
Nick87   (2008-09-23 16:03) [2]

стоит csOwnerDrawVariable


 
clickmaker ©   (2008-09-23 16:04) [3]

а почему именно 20, 3?


 
Nick87   (2008-09-23 16:06) [4]

там еще должно отрисовываться изовражение после которого следует текст.


 
clickmaker ©   (2008-09-23 16:07) [5]

и непонятно, причем тут контролканвас?
как она получается?
в общем, мало кода


 
Поросенок Винни-Пух ©   (2008-09-23 16:09) [6]

И откуда взялась R (ничем не инициализированное) если в обработчик для рисования передано Rect?


 
Nick87   (2008-09-23 16:09) [7]

Вот наброски


procedure TForm1.cmp_ComboBoxDrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
var
 J: TJPEGImage;
 B: TBitmap;
 C: TControlCanvas;
 R: TRect;
begin
 J := TJPEGImage.Create;
 J.LoadFromFile(ComboBox1.Items[Index]);
 B := TBitmap.Create;
 B.Height := 16;
 B.Width := 16;
 B.Canvas.StretchDraw(B.Canvas.ClipRect, J);

 R.Left := 3;
 R.Top := 3;
 R.Right := 16;
 R.Bottom := 16;

 C := TControlCanvas.Create;
 C.Control := Control;
 C.TextOut(20, 3, ComboBox1.Items[Index]);
 C.StretchDraw(R, B);
end;


 
Поросенок Винни-Пух ©   (2008-09-23 16:10) [8]

procedure TForm1.cmp_ComboBoxDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);


 
Nick87   (2008-09-23 16:13) [9]


> Поросенок Винни-Пух ©   (23.09.08 16:10) [8]
> procedure TForm1.cmp_ComboBoxDrawItem(Control: TWinControl;
>  Index: Integer; Rect: TRect; State: TOwnerDrawState);


Если передавать в StrechDraw параметр Rect из процедуры то картинка растянется по всей длине,  а мне нужно чтобы она была оределенного размера (скажем 16x16) после которой следовал бы текст


 
Anatoly Podgoretsky ©   (2008-09-23 16:13) [10]

> Nick87  (23.09.2008 15:57:00)  [0]

R не инициализирован
Неизвестная переменная В


 
Anatoly Podgoretsky ©   (2008-09-23 16:14) [11]

> Nick87  (23.09.2008 16:09:07)  [7]

Наброски неинтересны, зачем нам посторонний код?


 
Поросенок Винни-Пух ©   (2008-09-23 16:15) [12]

Если передавать в StrechDraw параметр Rect из процедуры то картинка растянется по всей длине,  а мне нужно чтобы она была оределенного размера (скажем 16x16) после которой следовал бы текст

<Цитата>


Рисовать надо "здесь" на переданном рект"е, а не "там"

R.Left := 3;
R.Top := 3;
R.Right := 16;
R.Bottom := 16;


Зашибись.
Это смещения относительно столба или обеда?


 
clickmaker ©   (2008-09-23 16:15) [13]

а почему не TComboBox(Control).Canvas ?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
2-1222254838
@!!ex
2008-09-24 15:13
2008.11.02
Не получается правильно поставить Hook на нажатие клавиши...


2-1222148458
Fynjy
2008-09-23 09:40
2008.11.02
вылетает ошибка Cannot make a visible window modal


15-1220713385
deadteachers
2008-09-06 19:03
2008.11.02
Хочу принять участие!


2-1222067753
sapsi
2008-09-22 11:15
2008.11.02
Найти порядковый номер строки Memo


15-1220676588
lionman
2008-09-06 08:49
2008.11.02
Подскажите проги на курсовую





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