Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Вниз

Button   Найти похожие ветки 

 
Der Nechk@ssoff ©   (2006-06-01 17:18) [0]

Здрасте!Подскажите где можно скачать круглую кнопку,как в PowerDVD или как в телефонах-"раскладушках"?


 
Gero ©   (2006-06-01 17:19) [1]

Попробуй выковырять из телефона-раскладушки.


 
tesseract ©   (2006-06-01 17:24) [2]

SetWindowRgn


 
DVM ©   (2006-06-01 17:27) [3]


> Здрасте!

Не совсем круглая, но выглядит круглой с соответствующими битмапами.

unit MyButton;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;

type
 TImageButton = class(TCustomControl)
 private
   MOver: TBitmap;
   MDown: TBitmap;
   MUp: TBitmap;
   Bmp: TBitmap;
   ActualBmp: TBitmap;
   BmpDAble: TBitmap;
   BtnClick: TNotifyEvent;
   OnMDown: TMouseEvent;
   OnMUp: TMouseEvent;
   OnMEnter: TNotifyEvent;
   OnMLeave: TNotifyEvent;
   procedure SetMOver(Value: TBitmap);
   procedure SetMDown(Value: TBitmap);
   procedure SetMUp(Value: TBitmap);
   procedure SetBmp(Value: TBitmap);
   procedure SetBmpDAble(Value: TBitmap);
 protected
   procedure Paint; override;
   procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
     X, Y: Integer); override;
   procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
     X, Y: Integer); override;
   procedure MouseEnter(var Message: TMessage); message CM_MOUSEENTER;
   procedure MouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
   procedure Click; override;
 public
   constructor Create(AOwner: TComponent); override;
 published
   property BitmapOver: TBitmap read MOver write SetMOver;
   property BitmapDown: TBitmap read MDown write SetMDown;
   property BitmapUp: TBitmap read MUp write SetMUp;
   property BitmapDisabled: TBitmap read BmpDAble write SetBmpDAble;
   property Bitmap: TBitmap read Bmp write SetBmp;
   property OnClick: TNotifyEvent read BtnClick write BtnClick;
   property OnMouseDown: TMouseEvent read OnMDown write OnMDown;
   property OnMouseUp: TMouseEvent read OnMUp write OnMUp;
   property OnMouseEnter: TNotifyEvent read OnMEnter write OnMEnter;
   property OnMouseLeave: TNotifyEvent read OnMLeave write OnMLeave;
   property Enabled;
   property ShowHint;
   property ParentShowHint;
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents("Buttons", [TImageButton]);
end;

constructor TImageButton.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 MOver := TBitmap.Create;
 MDown := TBitmap.Create;
 MUp := TBitmap.Create;
 Bmp := TBitmap.Create;
 BmpDAble := TBitmap.Create;
 ActualBmp := TBitmap.Create;
 Width := 50;
 Height := 50;
 Canvas.Brush.Color := clBtnFace;
 ShowHint := true;
end;

procedure TImageButton.Paint;
begin
 inherited Paint;
 if ActualBmp.Width = 0 then ActualBmp.Assign(Bmp);
// Canvas.FillRect(Rect(0,0,Width,Height));
 if Enabled or (BmpDAble.Width = 0) then Canvas.Draw(0,0,ActualBmp)
 else begin
   Width := BmpDAble.Width;
   Height := BmpDAble.Height;
   Canvas.Draw(0,0,BmpDAble);
 end;
end;

procedure TImageButton.Click;
begin
 inherited Click;
 Paint;
 if Enabled then if Assigned(BtnClick) then BtnClick(Self);
end;

procedure TImageButton.SetMOver(Value: TBitmap);
begin
 MOver.Assign(Value);
 Paint;
end;

procedure TImageButton.SetMDown(Value: TBitmap);
begin
 MDown.Assign(Value);
 Paint;
end;

procedure TImageButton.SetMUp(Value: TBitmap);
begin
 MUp.Assign(Value);
 Paint;
end;

procedure TImageButton.SetBmp(Value: TBitmap);
begin
 Bmp.Assign(Value);
 ActualBmp.Assign(Value);
 Width := Bmp.Width;
 Height := Bmp.Height;
 Paint;
end;

procedure TImageButton.SetBmpDAble(Value: TBitmap);
begin
 BmpDAble.Assign(Value);
 paint;
end;

procedure TImageButton.MouseDown(Button: TMouseButton; Shift: TShiftState;
 X, Y: Integer);
begin
 inherited MouseDown(Button, Shift, X, Y);
 if (Button = mbLeft) and Enabled then begin
    if Assigned (OnMDown) then OnMDown(Self, Button, Shift, X, Y);
    if MDown.Width > 0 then begin
       ActualBmp.Assign(MDown);
       Width := MDown.Width;
       Height := MDown.Height;
       Paint;
    end;
 end;
end;

procedure TImageButton.MouseUp(Button: TMouseButton; Shift: TShiftState;
 X, Y: Integer);
var MouseOverButton: Boolean;
   P: TPoint;
begin
 inherited MouseUp(Button, Shift, X, Y);
 if (Button = mbLeft) and Enabled then begin
    if Assigned (OnMUp) then OnMUp(Self, Button, Shift, X, Y);
    if MUp.Width > 0 then begin
       GetCursorPos(P);
       MouseOverButton := (FindDragTarget(P, True) = Self);
       if MouseOverButton then begin
          Width := MUp.Width;
          Height := MUp.Height;
          Canvas.FillRect(Rect(0,0,Width,Height));
          Canvas.Draw(0,0,MUp);
       end else begin
          Width := bmp.Width;
          Height := Bmp.Height;
          Canvas.FillRect(Rect(0,0,Width,Height));
          Canvas.Draw(0,0,Bmp);
       end;
    end else begin
       if MouseOverButton = false then begin
          Width := MOver.Width;
          Height := MOver.Height;
          Canvas.FillRect(Rect(0,0,Width,Height));
          Canvas.Draw(0,0,MOver);
       end else begin
          Width := bmp.Width;
          Height := Bmp.Height;
          Canvas.FillRect(Rect(0,0,Width,Height));
          Canvas.Draw(0,0,Bmp);
       end;
    end;
 end;
end;

procedure TImageButton.MouseEnter(var Message: TMessage);
begin
 if Enabled then begin
    if MOver.Width > 0 then begin
       ActualBmp.Assign(MOver);
       Width := MOver.Width;
       Height := MOver.Height;
       Paint;
    end;
 end;
end;

procedure TImageButton.MouseLeave(var Message: TMessage);
begin
 if Enabled then begin
    if Bmp.Width > 0 then begin
       ActualBmp.Assign(Bmp);
       Width := Bmp.Width;
       Height := Bmp.Height;
       Paint;
    end;
 end;
end;

end.



 
J_f_S   (2006-06-01 17:30) [4]

Use da ActiveSkin


 
Der Nechk@ssoff ©   (2006-06-01 17:35) [5]


> DVM ©   (01.06.06 17:27) [3]

жутковато.
А компонента нет такого?


 
DVM ©   (2006-06-01 17:40) [6]


> А компонента нет такого?

А ПЕРЕД ТОБОЙ ЧТО??? ЭТО РАЗЬВЕ НЕ КОМПОНЕНТ????


 
J_f_S   (2006-06-01 17:42) [7]


Der Nechk@ssoff
жутковато.
А компонента нет такого?


Вот за такие фразы стандартный сионист ненавидит стандартного дельфина.


 
tesseract ©   (2006-06-01 17:45) [8]


> Вот за такие фразы стандартный сионист ненавидит стандартного
> дельфина.


старые psacalist-ы тоже не в восторге.


 
Der Nechk@ssoff ©   (2006-06-01 17:50) [9]


> DVM ©   (01.06.06 17:40) [6]

Не орите.
Спасибо.Попробую.


 
Gero ©   (2006-06-01 17:55) [10]

> А ПЕРЕД ТОБОЙ ЧТО??? ЭТО РАЗЬВЕ НЕ КОМПОНЕНТ????

Это код какой-то, буков много. А компонент он квадратненький, с рисунком должен быть!


 
StriderMan ©   (2006-06-01 18:35) [11]

ИМХО круглые кнопки из лифтов лучше выковыривать, они с подсветочкой, и Caption на некоторых есть.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.009 c
2-1149347708
AlexanderMS
2006-06-03 19:15
2006.06.25
Показывать амперсанд (&)


4-1143534352
serg111111
2006-03-28 12:25
2006.06.25
Как в имеющемся приложениия написать сервис?


15-1149205505
dancer
2006-06-02 03:45
2006.06.25
Обжимка витой пары


2-1149704397
Mr tray
2006-06-07 22:19
2006.06.25
в каком модуле содержится MAKELANGID?


15-1148497229
Kerk
2006-05-24 23:00
2006.06.25
00:00





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