View Full Version : class procedures
Farhad.B.S
چهارشنبه 13 فروردین 1382, 21:51 عصر
سلام.
میخواستم بدونم فرق procedure هایی که در یک کلاس هست و با کلمه class آغاز میشه چه فرقی با procedureهای معمولی داره ؟
ممنون.
DelphiAmateur
پنج شنبه 14 فروردین 1382, 09:54 صبح
دوست عزیز
در دلفی همه پروسیجر ها عضو کلاسی هستند،پروسیجر های که در برنامه های معمولی می سازیم ویا دلفی می سازد
(مثلprocedure TForm1.Button1Click(Sender: TObject); )
عضو کلاس TForm1 هستند.
در مورد دوم اگه منظورت پروسیجر هایی مثل اینه:
procedure YourClassName.YourProcedureName;
begin
{Do Some Actions You want}
end;
اینها پروسیجرهایی هستند که در کلاسی که خودمان تعریف می کنیم بکار می روند و برای احضار آن در کلاسهای دیگر و پروسیجر های عضو کلاسهای دیگر مثل:
procedure TForm1.Button1Click(Sender: TObject));
به این صورت عمل می کنیم:
procedure TForm1.Button1Click(Sender: TObject);
var
YourClass1 : YourClassName;
begin
YourClassName.YourProcedureName;
.;
.
.
.
end;
end.
امیدوارم جوابت رو گرفته باشی
Farhad.B.S
پنج شنبه 14 فروردین 1382, 12:36 عصر
ممنون از پاسختون ولی منظور من Procedure هایی به این شکله :
Class Procedure MyProccname(param);
یا
Class Function MyFuncname(params) : type
Inprise
پنج شنبه 14 فروردین 1382, 13:01 عصر
مسئله : دسترسی به بخشی از یک کلاس بدون ساختن یک نمونه ( آبجکت ) از آن کلاس
راه حل : تعریف کلاس پراسیجر .
توضیح : بدون ساختن نمونه ای از یک کلاس عموما ممکن نیست از توانائی های موجود در آن کلاس استفاده کنیم . لذا با تعریف کلاس گونه فانکشنها و پراسیجرهای یک کلاس و با استفاده از نام کلاس میتوان از انها استفاده کرد .
مثال :
تعریف کلاس :
type
MyClass = class(TObject)
Private
MyClass_Value : Integer // یک متغیر برای کار داخلی کلاس
public
class function Value : Integer;
class procedure SetValue( v : Integer );
end;
پیاده سازی کلاس :
class function MyClass.Value : Integer;
begin
SharedValue:=MyClass_SharedValue
end;
class procedure MyClass.SetValue( v : Integer );
begin
MyClass_SharedValue:=v
end;
استفاده از کلاس بطور مستقیم :
a:=MyClass.Value*100;
MyClass.SetValue( a );
موفق باشید .
اینپرایز پاسخ تشریحی :roll:
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.