Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.045 c
15-1183290441
Kolan
2007-07-01 15:47
2007.07.29
Help&Manual Toggles всегда открыты, как исправить?


15-1183486078
ttimetabler
2007-07-03 22:07
2007.07.29
помогите определить время :)


15-1183458983
vasIZmax
2007-07-03 14:36
2007.07.29
Image, Canvas or OpenGl


1-1179828671
DelphiLexx
2007-05-22 14:11
2007.07.29
Screen.Cursor не меняет вид курсора


10-1134135320
_Lucifer_
2005-12-09 16:35
2007.07.29
Текущее положение курсора в документе MS Word





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский