المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
السلام عليكم ورحمة الله وبركاتة
هو كيف اضع تاثيرات جميله على مكونات دلفي سؤاً كان المكون Image , Shape , Button... إلخ
مثال : جعل المكوت Button شفاف ...
مثال : جعل المكون Image يقوم بدوران عندما اضغط عليه ...
مثال : جعل المكون Image يضيء او يشع نور عندما يكون مؤشر الفأرة عليه ...
مثال : رسم شكل نجمة او سيارة او اي شيكل كان على Button او Image او Shape او غيرة من المكونات
وشكراً لحسن القراءة
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
جعل المكوت Button شفااف ...
لن تستطيع عمل ذلك .. بسبب أن ال Button يقوم برسمه الوينداوز
يمكنك المحاولة باعادة رسم Button جديد .. اطلع على الكلاس TSpeedButton فقد تم رسمه من البداية بدون استخدام الوينداوز لرسمه .
جعل المكون Image يقوم بدوران عندما اضغط عليه ...
صعبة قليلا بسبب قصور دوال ال gdi على التعامل مع ال Float Number
يمكنك استخدام GDI+ ..ستبهرك !!!
جعل المكون Image يضيء او يشع نور عندما يكون مؤشر الفأرة عليه
هذه بسيطة كل ما عليك أن تفعله اقتناص الأحداث الخاصة بالماوس ثم رسم مستطيل على المكون ..
رسم شكل نجمة او سيارة او اي شيكل كان على Button او Image او Shape او غيرة من المكونات
استخدم ال GDI+ , أو حتى يمكنك استخدام ال GDI باستخدام المسارات path : الدالة Polygon
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
مثال بسيط لجعل Button شفاف :
PHP كود :
unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Buttons, Vcl.StdCtrls;
type TButtonX =class(Vcl.StdCtrls.TButton)
private
var FParent : TWinControl ;
procedure SetParent(AParent: TWinControl);
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure CreateWnd; override;
procedure CreateWindowHandle(const Params: TCreateParams);override;
public
constructor Create(AOwner: TComponent); override;
//published property Parent : TWinControl read FParent write SetParent;
end;
type
TForm2 = class(TForm)
SpeedButton1: TSpeedButton;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
// BY SMP3 .
{$R *.dfm}
var s:TButtonX ;
procedure TForm2.Button1Click(Sender: TObject);
begin
s:=TButtonX.Create(self);
s.Left:=0;
s.Top:=0;
s.Parent:=self;
end;
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
end;
{ TButton }
constructor TButtonX.Create(AOwner: TComponent);
begin
inherited;
Caption:=Self.ToString;
Width:=100;
Height:=30;
end;
procedure TButtonX.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.Style:=WS_POPUP ;
Params.ExStyle := Params.ExStyle or WS_EX_LAYERED;
end;
procedure TButtonX.CreateWindowHandle(const Params: TCreateParams);
begin
inherited CreateWindowHandle(Params);
SetLayeredWindowAttributes(Handle,ColorToRGB($0000FF00), 200, LWA_COLORKEY or LWA_ALPHA);
end;
procedure TButtonX.CreateWnd;
begin
inherited;
end;
procedure TButtonX.SetParent(AParent: TWinControl);
begin
if AParent <> FParent then begin
FParent:=AParent;
// Left := Left + AParent.Left ;
//Top := Top + AParent.Top;
end;
end;
end.
كما تلاحظ فان الكلاس TButtonX مشتق من TButton .. و باستخدام الستايل [COLOR="DarkOrange"]WS_POPUP ..
يعني لن تتمكن من اسناد خاصية أب لل TButtonX .. لكن ستحصل على زر شفاف في المقابل ..
لهذا السبب قلت أنه من المستحيل تطبيقه على ال TButton
بعد أن وصلت اليك الفكرة : حاول أن تقوم باعادة رسم Button جديد مشتق من
TWinControl or
TGraphicControl .. و ستحصل على نتائج مرضية ..
أما ان أردت الاستمرار في استخدام ال TButtonX المشتق ب TButton فعليك باقتناص WndProc للأب (الفورم) ثم تغيير موقع الزر عندما يتم تحريك الأب -وهكذا يتم ايهام المستخدم أن TButtonX ابن للفورم -
[/COLOR]
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
طريقة أخرى تجنبك الغوص في كل هذه التعقيدات :
يمكنك استخدام ال FireMonkey في كلتا الحالات :
[COLOR="Indigo"]مثال : جعل المكوت Button شفااف ...
مثال : جعل المكون Image يقوم بدوران عندما اضغط عليه ...
مثال : جعل المكون Image يضيء او يشع نور عندما يكون مؤشر الفأرة عليه ...
مثال : رسم شكل نجمة او سيارة او اي شيكل كان على Button او Image او Shape او غيرة من المكونات
[/COLOR]
المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
السلام عليكم ورحمة الله
اهلاً اخي المبرمج SMP3 ... إجابااتك دسمة كالعادة ما شاء الله P:
الهدف من سؤالي اني ارسيد وصع تطبيقات تحاكي التقنيه العالية ... كما في Win8
يبدو اني ساعمل على FireMonkey ... هل لديك امثلة عليها او يوجد امثله بالمنتدى ... استخدامات بسيطة لها ...إلخ
فانا لم يسبق ان فتحت FireMonkey من قبل

... وقبل قليل فقط القيت نظرة خاطفه عليها واعجبت بها P:
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
يمكنك البدأ بهذه الدروس :
كود :
http://www.delphi4arab.net/forum/showthread.php?tid=8031&highlight=firemonkey
http://www.delphi4arab.net/forum/showthread.php?tid=8112&highlight=firemonkey
http://www.delphi4arab.net/forum/showthread.php?tid=8123&highlight=firemonkey
لضيق الوقت لم أتمكن من تكملة السلسلة ..
المشاركات : 306
المواضيع 45
:
: 0
الإنتساب : Jul 2012
هل يوجد مراجع لتطبيق FireMonkey 3D,HD على نوافذ الـ DLL ؟
لاني جربت ذلك و توجد بعض الاخطاء القاتلة ...
المشاركات : 632
المواضيع 66
:
: 6
الإنتساب : Jul 2010
ALmuhhnad كتب :هل يوجد مراجع لتطبيق FireMonkey 3D,HD على نوافذ الـ DLL ؟
لاني جربت ذلك و توجد بعض الاخطاء القاتلة ...
هل تقصد مناداة FireMonkey Form From VCL App !!
نعم هناك بعض الأخطاء لكون FM تعتمد على[color=Red] +GDI لحلها يجب أن تقوم بارفاق مكتبة GDI+
ألق نظرة على هذه التدوينة :
كود :
[/COLOR]
http://blogs.embarcadero.com/stephenball/2011/10/10/writing-a-firemonkey-dll-for-use-with-a-vcl-application/