Форум: "Начинающим";
Текущий архив: 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