Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Рисунок на кнопку


Автор: Garabar 7.9.2005, 14:24
Уважаемые госпада и барышни а не подскажити ли вольному поэту и художнику каким макаром можна сделать иконку на кнопочку...
И если будет не сложно то подскажите также как зделать что бы кнопочка "западала" по нажатию и "отподала" по следюущему нажатию..
Спасибо.

Автор: _hunter 7.9.2005, 14:46
на кнопке ты не порисуеш...
но можно взять простую панель и рисовать на ней.
насчет западания -- по WM_LBUTTONDOWN или убираеш границу ( _кнопка_ станет плоской ) или рисуеш на панели слева и сверху _тень_
по WM_LBUTTONUP -- наоборот ( или поднимаеш границу или тень снизу и справа )

Автор: Garabar 7.9.2005, 15:07
Сенькс вери мач

Автор: Snowy 7.9.2005, 15:29
Или использовать SpeedButton.
Там уже все это реализовано.

Автор: ~FoX~ 8.9.2005, 08:52
Цитата(_hunter @ 7.9.2005, 15:46)
на кнопке ты не порисуеш...

Да сколько угодно:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  cc: TControlCanvas;
  b: TBitmap;
begin
   b:=TBitmap.Create;
   b.LoadFromFile('c:\1.bmp');
   cc := TControlCanvas.Create;
   cc.Control := Button1;
   cc.Brush.Bitmap := b;
   cc.FillRect(Rect(0,0,20,20));
   b.Free;
   cc.Free;
end;

Автор: Budy 8.9.2005, 13:29
У TSppedButton'а есть прекрасный параметр Down, изменив который ты получишь западание и выпадание.
Однако выпадание получяется лишь если данная кнопочка состоит с какой-нибудь подобной кнопочкой в группе GroupIndex
Добавлено @ 13:33
Нет, все же эта кнопочка может отжиматься самостоятельно (группа необязательна). Нужно изменить параметр AllowAllUp:=True. Хотя GroupIndex также нуждается в изменении
Добавлено @ 13:33
~FoX~, интересный пример

Автор: Grig 23.3.2006, 05:49
~FoX~, А вот при наведении мышкой на кнопку с рисунком, изображение изчезает. Как это можно победить?

Автор: ~FoX~ 23.3.2006, 09:25
Grig, код как ты рисуешь на кнопке покажи, а то как то очень расплывчато.

Автор: Grig 24.3.2006, 04:39
Да код-то в принципе твой...
Код

var
  cc: TControlCanvas;
  b: TBitmap;
begin
   b:=TBitmap.Create;
   b.Canvas.Rectangle(0,0,20,20);
   cc := TControlCanvas.Create;
   cc.Control := Button1;
   cc.Brush.Bitmap := b;
   cc.FillRect(Rect(0,0,20,20));
   b.Free;
   cc.Free;
end;

Автор: ~FoX~ 24.3.2006, 08:17
Grig, Я имел ввиду на каком событии он у тебя висит и при каком событии рисунок исчезает?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)