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

Вниз

ComboBox: кнопки для удаления на элементах выпадающего списка   Найти похожие ветки 

 
e5431   (2015-06-01 20:59) [0]

Приветствую всех!

Есть такая задача:

добавить в выпадающий список ComboBox отрисовку кнопки (типа SpeedButton) на каждом элементе, при нажатии на которую происходит удаление указанного элемента из списка.
Насчет OnDrawItem вроде бы все понимаю, изображение вывести могу.
Но вот как быть с кнопками - не знаю. Это ведь не просто картинка.

Подскажите, как реализовать и что где почитать на эту тему.
Спасибо.

PS: Windows 7, Delphi 7.


 
MBo ©   (2015-06-02 05:58) [1]

Нетривиальное поведение. Юзеры не запутаются?

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin
 with (Control as TComboBox)
   .Canvas do { Draw on control canvas, not on the form. }
 begin
   FillRect(Rect); { Clear the rectangle. }
   TextOut(Rect.Left + 25, Rect.Top, (Control as TComboBox).Items[Index]);

   if (odSelected in State) then
     DrawFrameControl(Handle, System.Classes.Rect(Rect.Left, Rect.Top,
       Rect.Left + 20, Rect.Bottom), DFC_BUTTON, DFCS_BUTTONPUSH);
 end;

end;

procedure TForm1.ComboBox1Select(Sender: TObject);
var
 Pt: TPoint;
begin
 Pt := Mouse.CursorPos;
 with Sender as TComboBox do begin
   Pt := ScreenToClient(Pt);
   if Pt.X < 20 then begin
     Pt.Y := Pt.Y - Height;
     Items.Delete(ItemIndex);
   end;
 end;
end;


 
MBo ©   (2015-06-02 06:01) [2]

Действие с Pt.Y лишнее, это я номер хотел вычислять.



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

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

Наверх





Память: 0.45 MB
Время: 0.001 c
4-1281220286
trw
2010-08-08 02:31
2017.01.29
зная pid вывести все хэндлы этого приложения


15-1457459219
Eraser
2016-03-08 20:46
2017.01.29
Тест выключения монитора


2-1433181587
e5431
2015-06-01 20:59
2017.01.29
ComboBox: кнопки для удаления на элементах выпадающего списка


2-1432211338
Сергей
2015-05-21 15:28
2017.01.29
SQL запрос


2-1432926299
Илья_666
2015-05-29 22:04
2017.01.29
Blur, реализация





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