Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c