PDA

View Full Version : سوال: آیا این روش اصولیه؟



Mask
شنبه 14 آبان 1390, 14:33 عصر
با سلام.
دیده شده گاهی برنامه نویسان یا حتی خودم وقتی فقط نیاز به استفاده از ایونت OnChange داریم و با وجود شی کاری نداریم . مثلا یه ادیت یا ممو میزاریم رو فرم و بازگشتی برنامه رو میریزیم در این شی و با OnChange تحلیلش میکنیم و جواب نهایی رو نشون کاربر میدیم. و دست آخرم Visible ش رو false میکنیم.
آیا این کار درسته یا نه.؟
یا اینکه باید یه متغیر رشته ای تعریف و براش ایونت مورد نظر رو بنویسیم.
چه روشه اصولی برای این کار پیشنهاد میشه؟

Felony
شنبه 14 آبان 1390, 15:04 عصر
به نظر خودتون اصولی هست ؟!

برای این کار میتونید یک Property بنویسید ، در قسمت public فرم :

private
fStr: string;
function GetStr: string;
procedure SetStr(const Value: string);
published
{ Private declarations }
public
{ Public declarations }
property StrChange: string read GetStr write SetStr;
end;

و

function TForm1.GetStr: string;
begin
Result:= fStr;
end;

procedure TForm1.SetStr(const Value: string);
begin
ShowMessage('String Changed');
fStr:= Value;
end;

حالا هر جا نیاز دارید با استفاده از SetStr به رشتتون مقدار بدید :

SetStr('salam');

میبینید که پیغام String Changed نمایش داده میشه ، با استفاده از تابع GetStr هم میتونید مقدار فعلی رششتون رو بگیرید .