1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

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

شروع موضوع توسط hector2141 ‏11/9/12 در انجمن Delphi

  1. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : لیست توابع مهم و پر کاربرد API در دلفی

    تابع Ellipse
    برای رسم یک بیضی با قلم و رنگ جاری از این تابع استفاده می شود.

    شکل تابع
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    [/TD]
    [TD="class: code"]function Ellipse(DC: HDC; X1, Y1, X2, Y2: Integer)

    [/TD]
    [/TR]
    [/TABLE]


    پارامترها
    در پارامتر اول Handle پنجره مربوطه رو قرار میدیم
    در پارامترهای بعدی مختصات مستطیلی که بیضی رو در بر می گیره وارد می کنیم
     
  2. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : لیست توابع مهم و پر کاربرد API در دلفی

    تابع FrameRGN
    رسم یک حاشیه با قلم موی مشخص به دور یک ناحیه مشخص شده

    شکل تابع
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    [/TD]
    [TD="class: code"]function FrameRgn(DC: HDC; hrgn: HRGN; hbr: HBRUSH; Width, Height: Integer)

    [/TD]
    [/TR]
    [/TABLE]


    پارامترها
    در پارامتر اول دستگیره DC مربوطه
    در پارامتر دوم دستگیره ناحیه مربوطه
    در پارامتر قلم موی مورد نظر
    و در پارامتر چهارم طول و ارتفاع ناحیه رو مشخص می کنیم
     
  3. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : لیست توابع مهم و پر کاربرد API در دلفی

    تابع GetPixel
    این تابع مقدار رنگ یک نقطه از یک Device Context رو بر می گردونه

    شکل تابع
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    [/TD]
    [TD="class: code"]function GetPixel(DC: HDC; X, Y: Integer)

    [/TD]
    [/TR]
    [/TABLE]


    پارامترها
    در پارامتر اول دستگیره Device Contex مربوطه رو قرار میدیم
    در پارامتر دوم و سوم هم مختصات x و y نقطه مربوطه رو وارد می کنیم
     
  4. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : لیست توابع مهم و پر کاربرد API در دلفی

    خاموش ؛ ری استارت و لوگ اف سیستم :
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    [/TD]
    [TD="class: code"])


    //------------- 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;

    [/TD]
    [/TR]
    [/TABLE]
     
  5. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : لیست توابع مهم و پر کاربرد API در دلفی

    نمایش کنترل پنل :
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    [/TD]
    [TD="class: code"]ShellExecute(Handle,'Open','control',nil,nil,SW_SH OWNORMAL);

    [/TD]
    [/TR]
    [/TABLE]


    البته ابتدا یونیت shellapiرو به usesاضافه کنید.
     
  6. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : لیست توابع مهم و پر کاربرد API در دلفی

    باز شدن سی دی رام :
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    [/TD]
    [TD="class: code"]mciSendString('Set cdaudio door open wait',nil,0,handle);

    [/TD]
    [/TR]
    [/TABLE]


    بسته شدن :
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    [/TD]
    [TD="class: code"]mciSendString('Set cdaudio door Closed wait',nil,0,handle);

    [/TD]
    [/TR]
    [/TABLE]
     
  7. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : لیست توابع مهم و پر کاربرد API در دلفی

    ایجاد فرم شیشه ای :
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    2
    3
    4
    5
    6
    7
    8
    9
    [/TD]
    [TD="class: code"] 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;

    [/TD]
    [/TR]
    [/TABLE]



    فراخوانی تابع :
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    [/TD]
    [TD="class: code"]TransForm(form1.Handle ,150);

    [/TD]
    [/TR]
    [/TABLE]
     
  8. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    پاسخ : لیست توابع مهم و پر کاربرد API در دلفی

    ایجاد سوراخ :
    [TABLE]
    [TR]
    [TD="class: gutter"]1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [/TD]
    [TD="class: code"]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;

    [/TD]
    [/TR]
    [/TABLE]