PDA

نسخه کامل مشاهده نسخه کامل : مباحث مربوط به Dll ها ( طرح سوالات و مشکلات و... )



Morteza_SOS
27-08-2008, 03:20
سلام دوستان از این به بعد هر کس هر مشکلی ، سوالی ، سورس و ... در رابطه با دی ال ال ( DLL ) ها داشت در این تاپیک قرار مطرح کنه تا همه بتونند راحتتر دسترسی داشته باشند و از تاپیک استفاده کنند ... :31:

سوال اول را خودم دارم ...

1- چطوری یه شرط ساده مثل زیر را از طریق DLL فراخوانی کنم ؟

شرط داخل Button فرم پروژه ام :
;('If edit1.text='123' then showmessage('Good') else showmessage('Sorry
می خوام این شرط را از DLL فرخوانی کنم !!!

لطفا این سوال را توضیح بدید تا سوالات بعدی را مطرح کنم :31::10:

romixery
27-08-2008, 08:08
بايد يه تابع با آرگومان ورودي بسازي و بعد تابع رو فراخواني كني.
با اجازه يه مثال مي زنم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مسلماً آرگومان ورودي اين تابع براي خواسته شما Edit1.Text خواهد بود.

SadeghPM
27-08-2008, 10:34
ّFunction Proviso_Check(Value:String):Boolean;
Begin
Result:=false;
if value='123' then
ShowMessage('Your Message .....');
Result:=true;
end;
....
Exports Proviso_Check;

به نظرتون همیشه Result=True نیست ؟!!!

F A R H A D
27-08-2008, 13:56
به نظرتون همیشه Result=True نیست ؟!!!

بهتره كه زياد به دنبال خطاهاي اين چنين نباشيد، هدف نحوه تعريف يك تابع شرطي در dll بوده كه گفته شد

Morteza_SOS
28-08-2008, 06:27
از همتون ممنونم ولی حالا اگه بخوام سایر توابع را برای سایر اشیاء تعریف کنم چی !!!
مثلا بخوام تایمر 2 را Visible اش را False کنم یا Enabled اش را True و... ؟
یا .... ؟

راستی اگه چند تا Edit داشته باشیم چی تداخل ایجاد نمی شه ؟؟؟
برای اینکه بین چند تا Edit ، Edit هدف را بشه انتخاب کرد باید چکار کرد ؟ مثلا از بین 10 تا Edit میخوام Edit 4 را چک کنم ؟؟؟


به نظرتون همیشه Result=True نیست ؟!!!
برای رفع مشکل چکار کنیم ؟؟؟

delphianddotnet
28-08-2008, 08:36
راستی اگه چند تا Edit داشته باشیم چی تداخل ایجاد نمی شه ؟؟؟
برای اینکه بین چند تا Edit ، Edit هدف را بشه انتخاب کرد باید چکار کرد ؟ مثلا از بین 10 تا Edit میخوام Edit 4 را چک کنم ؟؟؟

شما باید ابجکت مورد نظر را به تابع ارسال کنید.در واقع ارجاع به شی را داشته باشید

romixery
28-08-2008, 16:27
حالا اگه بخوام ساير توابع را براي ساير اشياء تعريف کنم چي !!!
مثلا بخوام تايمر 2 را Visible اش را False کنم يا Enabled اش را True و... ؟
يا .... ؟اولاً دوست عزيز، تايمر خاصيتي به نام Visible نداره كه بخواين True يا False اش كنيد. به هر حال اين كه مشكلي نداره. شما متغير ورودي آرگومان تابعتون رو مي تونيد از نوع TTimer بگيرين. بعد رويداد OnTimer اون را مقدار دهي كنيد.

راستي اگه چند تا Edit داشته باشيم چي تداخل ايجاد نمي شه ؟؟؟
براي اينکه بين چند تا Edit ، Edit هدف را بشه انتخاب کرد بايد چکار کرد ؟ مثلا از بين 10 تا Edit ميخوام Edit 4 را چک کنم ؟؟؟راستش من دقيقاً منظور شما رو نفهميدم. خوب اينم كه مشكل خاصي نداره، آرگومان ورودي تابع شما همان Edit هدف خواهد بود. مگر اينكه آرايه اي از Edit ها داشته باشيد كه اين هم كاري نداره. با ايندكسش بفرسينش به تابع.

به نظرتون هميشه Result=True نيست ؟!!!فكر نكنم اين موضوع اونقدر هم موضوع مهمي باشه. اگه خيلي مي خواين مطمئن باشين. تابع رو به رويه تغيير بدين كه اصلاً آرگومان خروجي نداشته باشه. من Result رو در آخر برنامه True كردم به اين معني كه تابع شما با موفقيت به پايان رسيده. همين.

Morteza_SOS
29-08-2008, 02:14
اولاً دوست عزيز، تايمر خاصيتي به نام Visible نداره كه بخواين True يا False اش كنيد. به هر حال اين كه مشكلي نداره. شما متغير ورودي آرگومان تابعتون رو مي تونيد از نوع TTimer بگيرين. بعد رويداد OnTimer اون را مقدار دهي كنيد.
راستش من دقيقاً منظور شما رو نفهميدم. خوب اينم كه مشكل خاصي نداره، آرگومان ورودي تابع شما همان Edit هدف خواهد بود. مگر اينكه آرايه اي از Edit ها داشته باشيد كه اين هم كاري نداره. با ايندكسش بفرسينش به تابع.
فكر نكنم اين موضوع اونقدر هم موضوع مهمي باشه. اگه خيلي مي خواين مطمئن باشين. تابع رو به رويه تغيير بدين كه اصلاً آرگومان خروجي نداشته باشه. من Result رو در آخر برنامه True كردم به اين معني كه تابع شما با موفقيت به پايان رسيده. همين.


تايمر خاصيتي به نام Visible نداره
ببخشید اشتباه شده بود آخر شبی قاطی کرده بودم !!! :31:

می شه یه مثال کلی برای توضیحات بالا بزنید ( لطفا سورس یه پروژه کامل را قرار بدید ) ؟؟؟
یعنی هم بشه چندین تایمر را کنترل کرد و هم هم چندین Edit ( مقادیر Edit ) و.... !!!

اگر می شه یه مثال جامع چه از دی ال ال باشه و چه از فراخوانی آن !!!:46:

beginner63
30-08-2008, 09:02
سلام. تاپيك جالبيه
لطفا نحوه فراخواني dll به صورت پويا رو هم بگيد. تشكر

NoneForce
30-08-2008, 09:07
سلام


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

SadeghPM
30-08-2008, 09:30
برای رفع مشکل چکار کنیم ؟؟؟
فقط این قسمت رو تو یه Begin و End; بزار:

ShowMessage('Your Message .....');
Result:=true;


فكر نكنم اين موضوع اونقدر هم موضوع مهمي باشه. اگه خيلي مي خواين مطمئن باشين. تابع رو به رويه تغيير بدين كه اصلاً آرگومان خروجي نداشته باشه. من Result رو در آخر برنامه True كردم به اين معني كه تابع شما با موفقيت به پايان رسيده. همين.
آره درسته ... اصلا مهم نیست !!! این همه بحث هم لازم نداره ... فقط خواستم گیرنده ، متوجه این موضوع بشه !!! آخه این جور که شما اول تابع Result=false گذاشتین... من فکر کردم تابع خروجی False هم قرار بده !!!