Главная страница
    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.042 c
6-1166033544
XfroSt
2006-12-13 21:12
2007.07.29
IndyUDPServer - Адрес назначения пакета, Как узнать в событии UDP


1-1175271189
Углук
2007-03-30 20:13
2007.07.29
Как окрасить TChartSeries?


15-1181825046
BaryVetaL
2007-06-14 16:44
2007.07.29
Лицензирование своего программного продукта


2-1183654535
Romm
2007-07-05 20:55
2007.07.29
Из страницы в приложение


2-1183389396
Ezorcist
2007-07-02 19:16
2007.07.29
Канва у имэйджа.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский