Главная страница
    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.46 MB
Время: 0.045 c
15-1183142815
homm
2007-06-29 22:46
2007.07.29
Вопрос по обновлениям Windows


15-1182881216
stasserov
2007-06-26 22:06
2007.07.29
Delphi for PHP


2-1183302519
Qzzma
2007-07-01 19:08
2007.07.29
Как узнать путь запущенного приложения?


15-1183625889
@!!ex
2007-07-05 12:58
2007.07.29
Установка Linux виснет на форматировании винчестеров....


2-1183279815
Витёк
2007-07-01 12:50
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский