![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
image на button
Сорокин М © (2007-07-03 23:17:00)Мастера научите рисовать на кнопке button, image'ку. Канваса у кнопки не нашел
{RASkov} (2007-07-04 02:57:00) [1]> [4] Германн © (04.07.07 02:45)
> Что "не специально"? :)
Когда начал писать сообщение, твоего поста еще не было.... потом отвлекся, и перед тем как запостить [3] - обновил, и увидел твой ответ. :)
> Извращения - не по моей части!
:) На правах примеров...
Германн (2007-07-04 02:45:00) [2]
> > [2] Германн © (04.07.07 01:50)
>
> :) Я не специально...
>
Что "не специально"? :)
Извращения - не по моей части! :-)
{RASkov} (2007-07-04 02:10:00) [3][1] +1
> Канваса у кнопки не нашел
Для "таких вещей" есть TControlCanvas, GetDC...
Вот примеры:
procedure TForm1.Button1Click(Sender: TObject);
var Cnv: TControlCanvas; R: TRect; X, Y: Integer; B: TBitMap;
begin
Cnv:=TControlCanvas.Create;
B:=TBitMap.Create;
B.LoadFromFile('C:\Temp\1.bmp');
Cnv.Control:=Button1;
R:=Button1.ClientRect;
InflateRect(R, -4, -4);
Cnv.StretchDraw(R, B);
Cnv.Brush.Style:=bsClear;
X:=(Button1.Width-Cnv.TextWidth(Button1.Caption)) div 2;
Y:=(Button1.Height-Cnv.TextHeight(Button1.Caption)) div 2;
Cnv.TextRect(R, X, Y, Button1.Caption);
Cnv.Free;
B.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var Dc: HDC; R: TRect; B: TBitMap;
begin
DC:=GetDc(Button2.Handle);
B:=TBitMap.Create;
B.LoadFromFile('C:\Temp\2.bmp');
R:=Button2.ClientRect;
InflateRect(R, -4, -4);
StretchBlt(DC, R.Left, R.Top, R.Right-R.Left, R.Bottom-R.Top, B.Canvas.Handle, 0, 0, B.Width, B.Height, SRCCOPY);
SetBkMode(DC, TRANSPARENT);
DrawText(DC, PChar(Button2.Caption), -1, R, DT_SINGLELINE or DT_CENTER or DT_VCENTER);
ReleaseDC(Button2.Handle, DC);
B.Free;
end;
Но в этих примерах рисунок не сохраняется как в BitBtn, ...перерисовывать в ручки. Может я и "забыл" чего, например, try...
> [2] Германн © (04.07.07 01:50)
:) Я не специально...
Германн (2007-07-04 01:50:00) [4]
> Сорокин М (03.07.07 23:17)
>
> Мастера научите рисовать на кнопке button, image'ку. Канваса
> у кнопки не нашел
>
И не найдешь никогда. И не только у TButton, но и TEdit, TMemo etc. Эти и некоторые другие окна отрисовываются самой Виндой.
@!!ex (2007-07-03 23:49:00) [5]BitBtn умеет рисовать небольшие картинки.
Можно рисовать свои кнопки, скажем на TImage.
Рисовать как угодно.