PDA

View Full Version : ‌Button گرافیکی



v_shalchian
پنج شنبه 29 اردیبهشت 1384, 21:49 عصر
سلام
من می خواهم یک Button گرافیکی داشته باشم.
اگر کامپوننتی می شناسید یا راه دیگر,لطفا معرفی کنید.
چون می خواهم یک برنامه با ظاهر گرافیکی خوب بنویسم.

Delphi Skyline
پنج شنبه 29 اردیبهشت 1384, 22:05 عصر
شما باید از یک IMAGE استفاده کنید که دو رویداد mouseenter و mouseleave را داشته باشه .
اگر خواستی همچین کامپاننتی بنویسی بهم بگو تا برنامه Component Writer 1.0 رو بدم بهت .
توی این برنامه نام رویداد و نوع اش رو مشخص کن و روی Ok کلیک کن . بقیش (کد نویسیش) با خودشه .

را دوم :
شما کامپاننت زیر را از کلاس timage بساز :


//Mehrdad System Comoponent Writer 1.0
//2005 - 1384 Iran-Shiraz-Fars
unit imageq;
interface
uses
SysUtils,Variants,StdCtrls, Classes,Windows,Dialogs,Forms, Controls,Graphics ,ExtCtrls , messages ,shellapi;

type
Timageq = class(Timage)
private
FOnmouseenter : Tnotifyevent;
FOnmouseleave : Tnotifyevent;
procedure CMOnmouseenter(var msg: tmessage);message CM_mouseenter;
procedure CMOnmouseleave(var msg: tmessage);message CM_mouseleave;
protected
Procedure DoOnmouseenter;dynamic;
Procedure DoOnmouseleave;dynamic;
public
published
property Onmouseenter : tnotifyevent read FOnmouseenter write FOnmouseenter;
property Onmouseleave : tnotifyevent read FOnmouseleave write FOnmouseleave;
End;
procedure Register;
implementation

procedure Register;
begin
RegisterComponents('Sample', [Timageq]);
end;
procedure Timageq.CMOnmouseenter(var msg : tmessage);
begin
DoOnmouseenter;
end;
procedure Timageq.CMOnmouseleave(var msg : tmessage);
begin
DoOnmouseleave;
end;
procedure Timageq.DoOnmouseenter;
begin
if assigned(FOnmouseenter) then FOnmouseenter(self);
end;
procedure Timageq.DoOnmouseleave;
begin
if assigned(FOnmouseleave) then FOnmouseleave(self);
end;
end.


بعد تو دلفی نصبش کن .
بعد یدونشو بزار تو فرم .
بعد 3 نوع تصویر دکمتو طراحی کن :
یکی وقتی که عادیه
یکی وقتی که روش میری
یکی وقتی که روش کلیک می کنی

خوب حالا برای رویداد ONMOUSELEAVE اش بنویس :


image1.picture.loadfromfile('1.bmp');

خوب حالا برای رویداد ONMOUSEUP هم بنویس :


image1.picture.loadfromfile('2.bmp');

خوب حالا برای رویداد ONMOUSEENTER هم بنویس :


image1.picture.loadfromfile('2.bmp');

خوب حالا برای رویداد ONMOUSEDOWN هم بنویس :


image1.picture.loadfromfile('3.bmp');


موفق باشی .
در ضمن نرم افزار Component Writer 1.0 هم خودم نوشتم .

دنیای دلفی
جمعه 30 اردیبهشت 1384, 12:06 عصر
دوست گرامی شما باید برای زیبا سازی برنامه از کام÷وننتهای مانند VclSkin استفاده کنید .

به زودی نسخه کامل این کام÷وننت در سایت www.JonoobShop.com عرضه می شود .

:D