![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
два вопроса по TComboBox
>>DEATH<< © (2007-08-03 22:08:00)подскажите как сделать:
1 как зафиксировать Tехt(чтоб нельзя было менять)
2 как прорисовывать картинку перед надписью
>>DEATH<< (2007-08-04 04:51:00) [1]пасибо разобрался
{RASkov} (2007-08-04 02:37:00) [2]> [3] >>DEATH<< (03.08.07 22:50)
> я и спрашиваю как рисовать
Ну можно например так:
........
private
BitmapIco: TBitmap;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Style:=csOwnerDrawFixed;
ComboBox1.ItemHeight:=21;
BitmapIco:=TBitmap.Create;
BitmapIco.Width:=ComboBox1.ItemHeight;
BitmapIco.Height:=BitmapIco.Width;
BitmapIco.Canvas.StretchDraw(BitmapIco.Canvas.ClipRect, Application.Icon);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
BitmapIco.Free;
end;
procedure TForm1. ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
with TCombobox(Control) do begin
Canvas.FillRect(Rect);
Canvas.StretchDraw(Classes.Rect(Rect.Left, Rect.Top, Rect.Left+BitmapIco.Width, Rect.Bottom), BitmapIco);
Canvas.TextOut(Rect.Left+BitmapIco.Width+2, Rect.Top+2, Items[Index]);
end;
end;
Пример не из лучших, но понять как "рисовать" в элементах "комбика" можно.... Я взял для простоты иконку приложения для рисунка...
Наиболее "важные" моменты выделил жирным... Кстати этот пример отвечает на оба вопроса из [0].....
Я хоть и не использовал в данном примере State, но выделил его.... стоит обратить на этот параметр внимание....
>>DEATH<< (2007-08-03 22:50:00) [3]
> 2. как рисуешь? что не получается?
я и спрашиваю как рисовать
>>DEATH<< (2007-08-03 22:49:00) [4]
> 2. как рисуешь? что не получается?
я и спрашиваю как рисовать
Loginov Dmitry (2007-08-03 22:34:00) [5]1. Style = csDropDownList
2. как рисуешь? что не получается?