Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.29;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
2-1432656290
cr@nk
2015-05-26 19:04
2017.01.29
WebBrowser: вставить текст в поля на странице


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


4-1281220286
trw
2010-08-08 02:31
2017.01.29
зная pid вывести все хэндлы этого приложения


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


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