PDA

View Full Version : class procedures



Farhad.B.S
چهارشنبه 13 فروردین 1382, 20:51 عصر
سلام.
میخواستم بدونم فرق procedure هایی که در یک کلاس هست و با کلمه class آغاز میشه چه فرقی با procedureهای معمولی داره ؟
ممنون.

DelphiAmateur
پنج شنبه 14 فروردین 1382, 08: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, 11:36 صبح
ممنون از پاسختون ولی منظور من Procedure هایی به این شکله :


Class Procedure MyProccname(param);
یا
Class Function MyFuncname(params) : type

Inprise
پنج شنبه 14 فروردین 1382, 12: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: