PDA

View Full Version : سوال در مورد کد نویسی



mehdi_moosavi
سه شنبه 08 اردیبهشت 1383, 21:19 عصر
سلام به همه دوستان همچنین به همه اساتید محترم دلفی

من یه سوال درمورد کدنویسی دارم

درفاکس پرو این امکان وجود داره که یک دستور رو داخل یک متغیر بریزیم و بعد هرجای اون برنامه
باگذاشتن یک & درابتدای اون متغیر از اون دستور استفاده کنیم مثلا:

' var1 = ' USE MYDATA
var1&
که با استفاده از این دستور فایل mydata بازمیشود
بااستفاده از این روش مقدار زیادی از کدنویسی ها کم میشه حالا سوال من اینه که آیا در دلفی این تکنیک یا چیزی شبیه به این وجود داره یا نه امیدوارم جوابتون مثبت باشه چون من از این تکنیک توی کدنویسیه فاکس پرو زیاد استفاده می کردم وحالا توی دلفی هم احتیاج دارم
متشکرم از همه

مهدی کرامتی
سه شنبه 08 اردیبهشت 1383, 21:52 عصر
دلیلی نداره که شما سعی کنید از همون متدی که در فاکس پرو استفاده میکردید در دلفی هم استفاده کنید.

در درس زبان انگلیسی قاعده‌ای وجود دارد که میگوید برای اینکه بتوانید در یادگیری یک زبان موفقیت کسب کنید باید مانند کسانی که آن زبان، زبان مادری ‌شان محسوب میشود فکر کنید.

بنابراین برای برنامه نویسی در دلفی از قواعد دلفی پیروی کنید.

mehdi_moosavi
چهارشنبه 09 اردیبهشت 1383, 17:23 عصر
سلام آقای مدیر
متشکر از جوابتون
ولی بنظر من بالاخره باید یه راه حلی باشه
فرض کنید روی یه فرم پنجاه تا لیبل داریم که میخواهیم بوسیله کدنویسی کپشن این لیبلها رو از یک تا پنجاه بکنیم
یک راه ساده اینه که پنجاه خط کد بنویسیم و یکی یکی کپشن ها رو ست کنیم
ولی شاید یه راه دیگه ای باشه
مثلا استفاده از یه حلقه یا ... نمیدونم
نظر شما چیه؟
متشکرم

مهدی کرامتی
چهارشنبه 09 اردیبهشت 1383, 17:38 عصر
به این مثال توجه کنید:

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
comp: TComponent;
begin
for i := 0 to Form1.ComponentCount-1 do
begin
if Form1.Components[i] is TLabel then
TLabel(Form1.Components[i]).Font.Color := clRed;
end;
end;

در مثال فوق از دو مشخه ComponentCount (که تعداد کامپوننتهای رو فرم جاری را برمیگرداند) و Components (که لیستی از تمام کامپوننتهای روی فرم را در بر دارد) برای انجام مقصود مورد نظر استفاده شده است.

نمونه برنامه فوق ضمیمه شده است.

Pichidehtarin
چهارشنبه 09 اردیبهشت 1383, 19:33 عصر
با سلام
یه شگرد دیگه هم تو دلفی وجود داره که جناب DelphiAssistand به علت پیچیدگی اون رو بیان نکردن .
اگه چند خط کد دارین که میخواین در چند رویداد مختلف از اونها استفاده کنین میتونین یه Procedure تعریف کنین و در هر جای برنامه از اون استفاده کنین .
مثال : شم میخواهید این خط کد

StatusBar1.SimpleText := 'Lines: ' + IntToStr(Memo1.CaretPos.Y) + ' Cloumn: ' + StrToInt(Memo1.CaretPos.X); رو در رویداد های OnChange ، OnKeyUp ، OnEnter ، OnMouseDown ، ... برای Memo1 وارد کنین میتونین اول یک Procedure بسازید و اون رو تو بلوک مربوط به Procedure بنویسین اونوق اون Procedure را به جای کد تو رویداد های مختلف به کار ببرین .
Procedure مربوط به این خط کد بصورت زیر است .

Procedure TForm1.MemoCaretPos;
begin
StatusBar1.SimpleText := 'Lines: ' + IntToStr(Memo1.CaretPos.Y) + ' Cloumn: ' + StrToInt(Memo1.CaretPos.X);
end;
البته باید توجه داشته باشین که نام Procedure رو در قسمت Private یا Public به این صورت Procedure MemoCaretPos درج کنیین .
پس از طی این مراحل میتونین Procedure مورد نظر در هر جای برنامه به این صورت MemoCaretPos به کار ببرید .
امیدوارم ساده توضیح داده باشم و شما بتونین اون رو درک کین .

mehdi_moosavi
پنج شنبه 10 اردیبهشت 1383, 20:23 عصر
سلام آقای مدیر
با راهنماییه شما مشکل حل شد
متشکرم از شما وسایت خوب شما
[/code]