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

Вниз

image на button   Найти похожие ветки 

 
Сорокин М   (2007-07-03 23:17) [0]

Мастера научите рисовать на кнопке button, image"ку. Канваса у кнопки не нашел


 
@!!ex ©   (2007-07-03 23:49) [1]

BitBtn умеет рисовать небольшие картинки.
Можно рисовать свои кнопки, скажем на TImage.
Рисовать как угодно.


 
Германн ©   (2007-07-04 01:50) [2]


> Сорокин М   (03.07.07 23:17)
>
> Мастера научите рисовать на кнопке button, image"ку. Канваса
> у кнопки не нашел
>

И не найдешь никогда. И не только у TButton, но и TEdit, TMemo etc. Эти и некоторые другие окна отрисовываются самой Виндой.


 
{RASkov} ©   (2007-07-04 02:10) [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 02:45) [4]


> > [2] Германн ©   (04.07.07 01:50)
>
> :) Я не специально...
>

Что "не специально"? :)
Извращения - не по моей части! :-)


 
{RASkov} ©   (2007-07-04 02:57) [5]

> [4] Германн ©   (04.07.07 02:45)
> Что "не специально"? :)

Когда начал писать сообщение, твоего поста еще не было.... потом отвлекся, и перед тем как запостить [3] - обновил, и увидел твой ответ. :)

> Извращения - не по моей части!

:) На правах примеров...



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

Текущий архив: 2007.07.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
15-1183160038
O.O
2007-06-30 03:33
2007.07.29
D6 и Vista


15-1182947588
TruePunk
2007-06-27 16:33
2007.07.29
wap ресурсы


2-1183300531
Romm
2007-07-01 18:35
2007.07.29
ID IDE


2-1183698279
Vasyl
2007-07-06 09:04
2007.07.29
Удаления из програмы


15-1183550923
Kerk
2007-07-04 16:08
2007.07.29
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1183525244&n=3