نمایش نتایج 1 تا 31 از 31

نام تاپیک: لیست توابع مهم و پر کاربرد API در دلفی

  1. #1
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211

    Tick لیست توابع مهم و پر کاربرد API در دلفی

    بخش دلفی یکی از بخشهای فعال سایت برنامه نویسه که در مورد برنامه نویسی دلفی تقریبا هر چی رو که بخوایم توش هست ، ولی تو این بخش کمتر از توابع API که اساس برنامه نویسی تحت ویندوز هستن بحث شده ، هر چند که بحث API به زبان برنامه نویسی خاصی تعلق نداره و کلا به برنامه نویسی تحت ویندوز مربوط می شه ولی بد نیست که یک مرجع وجود داشته باشه که از دید دلفی به این مبحث نگاه کنه و تا حد ممکن فارسی باشه.
    البته در تاپیکهای مختلفی سوال و جوابهایی در مورد توابع API شده و یقینا بحثهایی هم در مورد کاربرد و چگونگی استفاده از این توابع صورت گرفته ، ولی مشکل اینجاست که اغلب این مطالب تکراری هستن و از طرفی هم به علت پراکندگی جستجوی این مطالب سردرهای خودش رو داره .
    به نظرم رسید که یه تاپیک رو به این مطلب اختصاص بدیم وتوابع پرکاربرد API که برای دلفی ترجمه شدند رو در اینجا لیست کنیم .ازدوستان تقاضا می کنم هرکی که می تونه کمک کنه ، فقط لطف کنین که شکل دلفی این توابع و توضیح فارسی اونا رو بذارین واز کپی کردن مطالب از داخل MS SDK Help File و یا MSDN خوداری کنین ، هدف ما ایجاد یک مرجع فارسی و دلفی گراست . وگر نه هر کسی می تونه مطالب رو از MS SDK Help File دلفی مطالعه کنه.

  2. #2
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    بد نیست قبل از اینکه به تشریح توابع API بپردازیم نگاهی کلی به API داشته باشیم:

    API چیست ؟
    API مخفف Application Programming Interface به معنای رابط برنامه‌ نویسی کاربردی است. در واقعAPI یک کتابخانه سیستمی شامل صدها تابع استاندارد قابل دسترسی است که شرکت Microsoft آنها را داخل یکسری فایل DLL برای برنامه نویسی سیستمی قرار داده .
    API را اصطلاحا قلب سیستم عامل ویندوز می نامند ، هر کاری که در این سیستم عامل انجام می شود توسط همین توابع API صورت می گیرد ، در حقیقت API بر خلاف نام آن که نشان دهنده یک رابط مستقل برای ایجاد برنامه های کاربردی تحت ویندوز است بیشتر توسط خود سیستم عامل ویندوز مورد استفاده قرار می گیرد ، به بیانی دیگر تعداد زیادی از API ها را Microsoft جهت کارهای داخلی windows استفاده کرده و هیچ نامی از آنها برده نشده است و هیچ مستنداتی برای آنها نداریم در نتیجه بهتر است آنها را فراموش کنیم .
    اما نقش API در برنامه نویسی چیست؟ API سنگ بنای برنامه نویسی تحت ویندوز را فراهم می آورد . بهتر است بگوییم برنامه نویسی تحت ویندوز بدون توابع API غیر ممکن است .
    با استفاده از API می توانید برای برنامه ها یک رابط گرافیکی فراهم نمایید ، تصاویر را نمایش دهید و شی های سیستم مانند حافظه ، فایلها و پردازشها را مدیریت نمایید . ویندوز برای کنترل خود توابع و روال هایی را در اختیار برنامه نویسان می گذارد این توابع دارای قدرت و توانایی بالایی می باشند و قابل استفاده توسط برنامه نویسان Delphi, C++‎, Visual c, Visual Basic و غیره می باشند
    API ها به برنامه ها امکان استفاده کامل از قدرت خانواده ویندوز 32 بیتی را می دهد . با استفاده از آنها می توان برنامه ها را توسعه داد بطوریکه بصورت موفیق آمیز بر روی تمامی نسخه های ویندوز 32 بیتی اجرا شده ضمن اینکه از امکانات و قابلیتهای هر نسخه به نحو احسن استفاده کرد .

    علت استفاده از توابع API در برنامه‌نویسی
    دلایل استفاده از توابع API در زبانهای مختلف برنامه‌نویسی می‌تواند این باشد که:
    1 . توابع API به دلیل آنکه در فایلهای DLL هر سیستم عامل ویندوز می‌باشد و در هر مکان مانند یکدیگر می‌باشند پس نیازی به ارائه آن فایل DLL در نسخه برنامه نمی‌باشد و درنتیجه حجم نسخه کم می‌شود و درضمن سندیت برنامه نیز بیشتر می‌شود و می‌توان گفت که شما از منابع ویندوز به نحو احسن استفاده کرده‌اید.
    2 . نسخه‌های ویندوز به طور مداوم تغییر می کند ولی به دلیل آنکه سازندگان همیشه حالتی را در نظر می‌‌گیرند که نسخه‌های قبلی را نیز پشتیبانی کند. درنتیجه اگر شما برنامه‌ای را به کمک توابع API بنویسید با تغییر نسخه ویندوز نیازی به تغییر جدی در توابع API نمی‌باشد.
    3 . بیشتر زبانهای برنامه‌نویسی (به‌خصوص زبانهای تحت ویندوز که خود به صورت پنهان از توابع API استفاده می‌کنند، ممکن است به علت محدودیتهایی نتوانند تمام امکانات توابع را در اختیار قرا دهند. شما با دسترسی مستقیم به توابع می‌توانید از حداکثر قابلیتهای تابع استفاده کنید.
    4 . در بعضی از زبانهای برنامه‌نویسی برای آنکه بتوان یک حالت را بوجود آورد و یا کار مشخصی را انجام داد، باید کدهای زیادی بنویسیم و یا در زمان خطاگیری مدت زیادی را صرف کنیم و به طور حتم کاربر استفاده‌کننده از برنامه شما نیز باید زمان بیشتری را برای گرفتن جواب صرف کند. این موارد ذکر شده هر کدام به نوبه خود می‌توانند از محبوبیت، قدرتمند و خوانابودن برنامه بکاهند. ولی توابع API به دلیل آنکه روتین شده و از قبل نوشته شده می‌باشند پس فقط کافیست تابع را فراخوانی کنیم و به آن ورودی دهیم و خروجی مورد نظر خود را دریافت کنیم.
    5 . بیشترتوابعAPI کارهایی را انجام می‌دهند که زبانهای برنامه‌نویسی قادر به انجام آن نمی‌باشند. به عنوان مثال به تابع SetlateradwindowAttributes مراجعه کنید که باعث می‌‌شود یک پنجره (فرم و یا کنترلهای داخل آن) و با یک رنگ مشخص در آنها به مقدار دلخواه به حالت شفاف و Transparen تبدیل شوند. و یا توابع دیگر مانند StretchBlt , TransparentBlt , LokworkStation , TimGetTim و SHShutDownDialog و ...

    همانطور که دیدیدAPI ها نقش اصلی و کلیدی را در ویندوز ایفا می کنند و به گفته عده ای ویندوز مجموعه ای از توابع API است ، ولی استفاده از این توابع مشکلاتی را نیز در بر دارد :

    مشکلات کار با API
    از دلایل مشکلات کار با API ها می توان به نکات زیر اشاره کرد :
    همانطور که می دانید windows با C و++ C نوشته شده و تایپ توابع آن همان تایپ ++C بوده و فهم C نیز نسبت به سایر زبانهای برنامه نویسی کمی مشکلتر است ، بدلیل وجود ماکروها ، اشاره گر, مدیریت حافظه پویا و …
    دلیل دیگر ترس از API ظاهر پیچیده بعضی از این توابع می باشند ، وجود تعداد زیاد پارامتر که باز هر پارامتر خود یک structur می باشد که این struct از تعدادی فیلد تشکیل شده که فهم و درک تک تک این فیلدها و پارامترها بسیار مشکل می باشد .
    دلیل دیگر را می توان این گفت که برای انجام یک عمل باید یک سری از توابع API را با ترتیب خاص و پارامترهای مشخص فراخوانی نمود . که چگونگی ترتیب توابع ، مقادیر پارامترها و اینکه حتی چه توابعی باید فراخوانی شوند جای بحث بسیار است .
    با توجه به دلایل گفته شده بسیاری از برنامه نویسان ویندوز کار با برنامه هایی چون Delphi را ترجیح می دهند و آن را لذت بخش می دانند به علت اینکه برنامه های visual تمامی پیچیدگی های API ها را در توابع و اشیاء‌خود پنهان نموده اند و در نتیجه برنامه نویس به آن صورت درگیر API ها نمی شود ( مگر در موارد خاص و … ) و با کمترین وقت و کار ، بیشترین نتیجه را بدست می آورد . ( حتی افرادی هستند که هیچ اطلاعاتی از API ندارند اما برنامه های تحت windowsمی نویسند )‌
    بطور مثال با یک click یک Form یا یکButton ایجاد می شود اما در پشت پرده توابع API مختلفی فراخوانی می شود تا این کنترل ها ایجاد شوند .

    دلفی و API ویندوز

    وقتی دلفی وارد بازار برنامه نویسی شد، دوره وعصر جدیدی را برای برنامه نویسان به ارمغان آورد. هیچ وقت قبل از این نمی شد یک برنامه قدرتمند و خوش فرمی در محیط ویندوز در کمترین زمان درست کرد. قدرت دلفی و همچنبن سادگی در برنامه نویسی دلیل انتخاب فوق العاده برای کسانی بود که می توانستند به زبانهای ++C و Visual Basic و دیگر محیطهای برنامه نویسی شبیه به اینها برنامه بنویسند.
    یکی از قدرت های دلفی کتابخانه اجزایی بصورت ویژوال (Visual Component Library) که به آن VCL نیز گفته می شود که همان مدل شیء بورلند است. این مدل شیء به تیمهای برنامه نویسی دلفی اجازه می دهد که اکثریت زیادی از قسمتهای طاقت فرسای برنامه نویسی دلفی را در اجزای (Component) که به سادگی قابل استفاده هستند، قرار دهد. قبلاً برنامه نویسان زبانهای تحت ویندوز برای اینکه اعمال ساده ای را در ویندوز انجام دهند می بایستی حجم قابل توجهی کد برنامه نویسی بنویسند. تنها عمل بوجود آوردن یک فرم ساده با منوهای انتخابی می توانست چندین صفحه کد احتیاج داشت. ولی کپسوله کردن این احتیاج برنامه نویسی که مایه افسردگی و دلزدگی برنامه نویسی در ویندوز می شد را در دلفی بصورت یک عمل جالب و تجربه ای سرگرم کننده تبدیل کرده است.

    در پستهای بعدی به تشریح توابع پر کاربرد API می پردازیم.

  3. #3
    می تونید این مقالات را مطالعه کنید:
    Dr.Bob's Delphi API Conversion
    Pascal Header Conversion Specification

    و از این ابزار استفاده کنید:
    Project JEDI Header Converter utility


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  4. #4
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع CreateEllipticRGN
    این تابع ناحیه ای به صورت بیضی ایجاد می کند .

    شکل تابع

    function CreateEllipticRgn(p1, p2, p3, p4: Integer)
    پارامترها
    دو پارامتر اول گوشه سمت چپ بالا و پارامتر سوم و چهارم گوشه سمت راست پایین رو مشخص می کنن.

    Unit
    Windows

    کتابخانه
    Gdi32


    مثال
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع CreatePen
    این تابع برای ایجاد قلم با سبک ، اندازه و رنگ مشخص به کار می ره . از این قلم می تونید برای رسم اشکال بر روی فرم استفاده کنین .

    شکل تابع

    function CreatePen(Style, Width: Integer; Color: COLORREF)

    پارامترها

    پارامتر اول نوع قلم ، پارامتر دوم اندازه قلم و پارامتر سوم رنگ قلم رو مشخص می کنه.

    Unit
    Windows

    کتابخانه
    Gdi32

    مثال
    فایل های ضمیمه فایل های ضمیمه

  6. #6
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع CreateSolidBrush
    این تابع یک قلم منطقی با یک رنگ مشخص رو ایجاد می کنه.

    شکل تابع

    function CreateSolidBrush(p1: COLORREF)
    پارامترها
    تنها پارامتر این تابع مشخص کننده رنگ قلم است.

    Unit
    Windows

    کتابخانه
    Gdi32

    مثال
    به مثال پست 5 رجوع کنید

  7. #7
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع GetDriveType
    این تابع نوع یک درایو (CD_Rom , Hard Disk و . . . ) را مشخص می کند

    شکل تابع

    function GetDriveType(lpRootPathName: PChar)
    پارامترها
    در پارامتر این تابع باید نام درایو مورد نظر را به صورت رشته وارد کنید.در صورت وارد کردن nil به جای نام داریو ، درایو جاری مورد بررسی قرار می گیرد.

    Unit
    Windows

    کتابخانه
    Kernel32

    مثال
    فایل های ضمیمه فایل های ضمیمه

  8. #8
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع GetLocalTime
    این تابع زمان و تاریخ جاری سیستم رو بر می گردونه .

    شکل تابع
    procedure GetLocalTime(var lpSystemTime: TSystemTime)
    پارارمترها
    تنها پارامتر این تابع از نوع SystemTime می باشد و برای دریافت تاریخ و زمان جاری به کار می رود

    Unit
    Windows

    کتابخانه
    Kernel32

    مثال
    فایل های ضمیمه فایل های ضمیمه

  9. #9
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع GetLogicalDrives
    این تابع تمام درایوهای منطقی(A , B , C و ... ) سیستم را تعین می کند . به بیانی دیگه این تابع یه مقدار 2 بایتی رو برمی گردونه که هر بیت اون مشخص کننده یک درایو منطقی است.

    شکل تابع

    function GetLogicalDrives:
    پارامترها


    Unit
    Windows

    کتابخانه
    Kernel32

    مثال
    فایل های ضمیمه فایل های ضمیمه

  10. #10
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع ActivateKeyboardLayout
    به کمک این تابع می تونید Layout صفحه کلید رو عوض کنید. فرض کنید که سیستم شما دارای دو زبان فارسی و لاتین است ، توسط این تابع می تونید بین این دو زبان سویچ کنید.

    شکل تابع
    function ActivateKeyboardLayout(hkl: HKL; Flags: UINT)
    پارامترها
    در پارامتر اول می تونید دو مقدار زیر رو وارد کنید:
    HKL_NEXT : فعال کردن Layout (زبان) بعدی .
    HKL_PREV : فعال کردن Layout (زبان) قبلی .
    درپارامتر دوم مقادیر زیادی رو می تونید وارد کنید ولی در حالت معمول مقدار این پارامتر KLF_REORDER می باشد.

    Unit
    Windows

    کتابخانه

    User32

    مثال
    فایل های ضمیمه فایل های ضمیمه

  11. #11
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع AnimateWindow
    به کمک این تابع می تونید کنترلهای پنجره دار رو با استفاده از یک effect خاص به صورت انیمیشن نمایش بدید یا پنهان کنید.

    شکل تابع
    function AnimateWindow(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD)
    پارامترها
    درپارامتر اول handle پنجره رو قرار میدیم مثلا (Form1.handle)
    پارامتر دوم مشخص کننده تاخیر زمانی نمایش کنترل بر حسب میلی ثانیست.مقدار معمول اون 200 است.
    پارامتر سوم هم نوع نمایش کنترل رو مشخص می کنه.

    Unit
    Windows

    کتابخانه
    User32

    مثال

    فایل های ضمیمه فایل های ضمیمه

  12. #12
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع AppendMenu
    این تابع برای اضافه کردن یک عنوان جدید به یک منو به کار می ره.

    شکل تابع

    function InsertMenuW(hMenu: HMENU; uPosition, uFlags, uIDNewItem: UINT;
    lpNewItem: PWideChar)
    پارامترها
    در پارامتر اول handle پنجره رو قرار میدیم
    در پارامتر دوم محل عنوان جدید در منو رو مشخص می کنیم
    پارامتر سوم مشخص کننده نوع آیتم می باشد
    و پارامتر چهارم هم مشخص کننده عنوان آیتم است

    Unit
    Windows

    کتابخانه
    User32

    مثال
    فایل های ضمیمه فایل های ضمیمه

  13. #13
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع Ellipse
    برای رسم یک بیضی با قلم و رنگ جاری از این تابع استفاده می شود.

    شکل تابع
    function Ellipse(DC: HDC; X1, Y1, X2, Y2: Integer)
    پارامترها
    در پارامتر اول Handle پنجره مربوطه رو قرار میدیم
    در پارامترهای بعدی مختصات مستطیلی که بیضی رو در بر می گیره وارد می کنیم

    Unit
    Windows

    کتابخانه
    Gdi32

    مثال
    فایل های ضمیمه فایل های ضمیمه

  14. #14
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع FrameRGN
    رسم یک حاشیه با قلم موی مشخص به دور یک ناحیه مشخص شده

    شکل تابع
    function FrameRgn(DC: HDC; hrgn: HRGN; hbr: HBRUSH; Width, Height: Integer)
    پارامترها
    در پارامتر اول دستگیره DC مربوطه
    در پارامتر دوم دستگیره ناحیه مربوطه
    در پارامتر قلم موی مورد نظر
    و در پارامتر چهارم طول و ارتفاع ناحیه رو مشخص می کنیم

    Unit
    Windows

    کتابخانه
    Gdi32


    مثال
    فایل های ضمیمه فایل های ضمیمه

  15. #15
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    تابع GetPixel
    این تابع مقدار رنگ یک نقطه از یک Device Context رو بر می گردونه

    شکل تابع
    function GetPixel(DC: HDC; X, Y: Integer)
    پارامترها
    در پارامتر اول دستگیره Device Contex مربوطه رو قرار میدیم
    در پارامتر دوم و سوم هم مختصات x و y نقطه مربوطه رو وارد می کنیم

    Unit
    Windows

    کتابخانه
    Gdi32

    مثال
    فایل های ضمیمه فایل های ضمیمه

  16. #16
    کاربر دائمی آواتار aserfg
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    Asp+.net
    پست
    617
    خاموش ؛ ری استارت و لوگ اف سیستم :
    ) 


    //------------- Solution 1-----------------



    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ExitWindowsEx(EWX_FORCE and EWX_SHUTDOWN,0);
    //EWX_SHUTDOWN for shutdown
    //EWX_REBOOT for reboot
    //EWX_LOGOFF for logoff
    end;




    //------------- Solution 2-----------------

    run %Windir%\system32\shutdown.exe

    Example :

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    WinExec('shutdown.exe -s -f -t 0' , SW_HIDE);
    end;




    //------------- Solution 3-----------------



    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    function SetPrivilege1 (sPrivilegeName: string; bEnabled: Boolean) : Boolean;
    var
    TPPrev,
    TP : TTokenPrivileges;
    Token : THandle;
    dwRetLen : DWORD;
    begin
    result := False;

    OpenProcessToken (GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token);

    TP.PrivilegeCount := 1;
    if LookupPrivilegeValue (nil, PChar (sPrivilegeName), TP.Privileges[0].LUID) then
    begin
    if bEnabled then
    TP.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
    else
    TP.Privileges[0].Attributes := 0;

    dwRetLen := 0;
    result := AdjustTokenPrivileges (Token, False, TP, SizeOf (TPPrev), TPPrev,
    dwRetLen)
    end;

    CloseHandle (Token)
    end;


    function WinExit1 (iFlags: integer) : Boolean;
    begin
    result := true;
    if SetPrivilege1 ('SeShutdownPrivilege', true) then
    begin
    if (not ExitWindowsEx (iFlags, 0)) then
    begin
    result := False
    end;
    SetPrivilege1 ('SeShutdownPrivilege', False)
    end
    else
    begin
    result := False
    end;
    end;


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    // 0= Logoff
    // 1= Shutdown
    WinExit1(1);
    end;


  17. #17
    کاربر دائمی آواتار aserfg
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    Asp+.net
    پست
    617
    نمایش کنترل پنل :
      
    ShellExecute(Handle,'Open','control',nil,nil,SW_SH OWNORMAL);
    البته ابتدا یونیت shellapiرو به usesاضافه کنید.

  18. #18
    کاربر دائمی آواتار aserfg
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    Asp+.net
    پست
    617
    باز شدن سی دی رام :
      mciSendString('Set cdaudio door open wait',nil,0,handle);
    بسته شدن :
      mciSendString('Set cdaudio door Closed wait',nil,0,handle);

  19. #19
    کاربر دائمی آواتار aserfg
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    Asp+.net
    پست
    617
    ایجاد فرم شیشه ای :
      Function TransForm(wnd:Longint; Perc:Integer):Longint;
    var
    j:Longint;
    begin
    j := GetWindowLong(wnd, GWL_EXSTYLE);
    j := j Or WS_EX_LAYERED;
    SetWindowLong( wnd, GWL_EXSTYLE, j);
    SetLayeredWindowAttributes (wnd, 0, Perc, LWA_ALPHA);
    End;

    فراخوانی تابع :
      TransForm(form1.Handle ,150);

  20. #20
    کاربر دائمی آواتار aserfg
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    Asp+.net
    پست
    617
    ایجاد سوراخ :
      Procedure TForm1.FormPaint(Sender: TObject);
    Var
    Wnd:HWnd;
    R1,R2:HRGN;
    R:TRect;
    Begin
    Wnd:=Application.MainForm.Handle;
    GetWindowRect(Wnd,R);
    R1:=CreateRectRgn(0,0,R.Right-R.Left,R.Bottom-R.Top);
    R2:=CreateEllipticRgn(10,30,150,120);
    CombineRgn(R1,R1,R2,RGN_DIFF);
    SetWindowRgn(Wnd,R1,true);
    End;

  21. #21
    کاربر دائمی آواتار aserfg
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    Asp+.net
    پست
    617
    اگه لازم بود بگین در خدمتیم .

  22. #22
    اگه لازم بود بگین در خدمتیم .
    چی لازم بود؟!


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  23. #23
    سلام دوستان فکر می کنم اگه این توابع دسته بندی بشن خیلی بهتر باشه البته این فقط یه پیشنهاده.
    One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man (Elbert Hubbard)

  24. #24
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    سلام دوستان فکر می کنم اگه این توابع دسته بندی بشن خیلی بهتر باشه البته این فقط یه پیشنهاده.
    صد در صد همینطوره ، اگر عمری باقی بود هر چند وقت یک بار این توابع رو بر حسب موضوع دسته بندی و لیست می کنم.

  25. #25
    جناب rasool_brn در این تاپیک زحمت می کشند. دستشون درد نکنه.
    ولی شخصا با این مدل لیست کردن توابع موافق نیستم. معمولا تاپیک هایی مثل این یک مدت آپدیت میشند و بعد به فراموشی سپرده میشند.
    ویندوز بیش از 70،000 تابع API داره. برای استفاده از هر کدام از آنها باید به نکات مختلفی توجه کرد. در این تاپیک فقط مختصری درباره هر تابع توضیح داده میشه. فرد برای استفاده از تابع نیاز داره که به Windows SDK مراجعه کنه تا با وظیفه هر پارامتر و نکات مربوط به هر تابع کاملا آشنا بشه. اگر قرار باشه که در نهایت فرد به Windows SDK مراجعه کنه، بهتره که از اول لینک MSDN را بهش بدیم و خیالش را راحت کنیم، چون هم درباره همه توابع API موجود کامل توضیح داده، هم مثال های مختلفی داره، هم امکان جستجوی مناسب داره، هم مطالب به خوبی طبقه بندی شدند.
    به نظر بنده، مفیدترین کاری که در این زمینه در این بخش میشه کرد اینه که مشخص بشه هر تابع API در کدام یونیت دلفی تعریف شده، و هم چنین به کاربران یاد داده بشه که چطور می توان یک Header زبان C را به پاسکال ترجمه کرد.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  26. #26
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    بله با نظر شما کاملا موافقم ، نمیشه همه API رو اینجا لیست کرد ،قصد من هم این نبود ،هدف من این بود که فقط توابعی رو که برای دلفی ترجمه شدن رو در اینجا لیست کنیم و البته با توضیح مختصری که نشون بده کار تابع چیه . به هر حال نطر ،نظر شماست .

  27. #27
    به هر حال نطر ،نظر شماست .
    نه، مطلب بنده یک نظر شخصی بود، نه نظر مدیریتی. من این مطلب را نگفتم که شما فعالیت در این تاپیک را متوقف کنید. فعالیت به همین شکلی هم که الان انجام میدید، منافاتی با قوانین سایت نداره. اگر فکر می کنید به همین صورت هم می تونه مفید باشه، ادامه بدید، اگر هم فکر می کنید باید تغییری در روش ایجاد شود، تا زمانی که تخلفی از قوانین سایت انجام نشود، مختارید.

    موفق باشید


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  28. #28
    کاربر دائمی آواتار rasool_brn
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    کرمانشاه
    پست
    211
    اگر فکر می کنید به همین صورت هم می تونه مفید باشه، ادامه بدید، اگر هم فکر می کنید باید تغییری در روش ایجاد شود، تا زمانی که تخلفی از قوانین سایت انجام نشود، مختارید.
    راستش من چیزی به نظرم نمیرسه ، ممنون میشم اگه شما کمک کنین تا تغییری در روش ایجاد کنیم ،مطمئنا تجربه شما در این زمینه بیشتره و پیشنهادهای شما میتونن مفید و کارساز واقع بشن.

  29. #29
    کاربر تازه وارد آواتار javad3d
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    بجنورد
    پست
    33

    نقل قول: لیست توابع مهم و پر کاربرد API در دلفی

    با سلام
    اگه امكان داره يوزز مزبوط به تابه IsNetworkActive رو ذكر كنيد.

    با تشكر

  30. #30
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    کاشان
    پست
    809

    نقل قول: لیست توابع مهم و پر کاربرد API در دلفی

    سلام اين هم يك برنامه در پيرامون توابع API ويندوز

    با اين برنامه قادر خواهيد بود كه يك فايل كتابخانه اي (DLL) را باز كرده و سپس تمام توابع درون آن با آدرسش را مشاده كنيد (مثلا فايل هاي kernel32.dll shell32.dll mmsystem.dll و .... )

    اين برنامه به شما كمك مي كند تا توابع مخفي را مشاهده كنيد.
    فایل های ضمیمه فایل های ضمیمه

  31. #31
    کاربر دائمی آواتار matinebi
    تاریخ عضویت
    آبان 1386
    محل زندگی
    نیشابور
    پست
    433

    نقل قول: لیست توابع مهم و پر کاربرد API در دلفی

    نقل قول نوشته شده توسط aserfg مشاهده تاپیک
    باز شدن سی دی رام :
      mciSendString('Set cdaudio door open wait',nil,0,handle);
    بسته شدن :
      mciSendString('Set cdaudio door Closed wait',nil,0,handle);
    متد mciSendString رو نمیشناسه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •