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

نام تاپیک: کدها ومثالها و ترفندهای دلفی

  1. #1

    کدها ومثالها و ترفندهای دلفی

    نوشتن یک لیبل بصورت مورب


    procedure TForm1.Button1Click(Sender: TObject);
    begin
    AngleTextOut(Form1.Canvas,12,10,65,'Advanced Delphi Technicals !!');
    end;

    procedure AngleTextOut(ACanvas: TCanvas;Angle,X,Y: Integer;Str: string);
    var
    LogRec : TLogFont;
    OldFontHandle,NewFontHandle :HFONT;
    begin
    GetObject(ACanvas.Font.Handle,SizeOf(LogRec),Addr( LogRec));
    LogRec.lfEscapement := Angle * 10;
    NewFontHandle := CreateFontIndirect(LogRec);
    OldFontHandle := SelectObject(ACanvas.Handle,NewFontHandle);
    ACanvas.TextOut(X,Y,str);
    NewFontHandle := SelectObject(ACanvas.Handle,OldFontHandle);
    DeleteObject(NewFontHandle);
    end;



    نوشتن کپشن یک دکمه در چند سطر



    procedure TForm1.FormCreate(Sender: TObject);
    begin
    SetWindowLong(Button1.Handle,GWL_STYLE,GetWindowLo ng(Button1.Handle,GWL_STYLE) OR BS_MULTILINE);
    end;




    مخفی کردن و نمایش مجدد ساعت ویندوز

    procedure TForm1.Button1Click(Sender: TObject);
    var
    hn : HWND;
    begin
    hn:= FindWindowEx(FindWindowEx(FindWindow('Shell_TrayWn d',nil),0,
    'TrayNotifyWnd',nil),0,'TrayClockWClass',nil);
    if hn <> 0 then
    ShowWindow(hn,SW_HIDE);
    end;

    برای نمایش مجدد همان کدهای بالا تکرار کرده و لی بجای سطر آخر کد زیر را قرار دهید:
    ShowWindow(hn,SW_SHOW);



    نمایش تمامی اطلاعات مربوط به حافظه اصلی کامپیوتر (RAM)

    یک Memo و یک دکمه روی فرم قرار داده و کد زیر را برای دکمه بنویسید:

    procedure TForm1.Button1Click(Sender: TObject);
    var
    MemorysStatus: TMemoryStatus;
    begin
    Memo1.Lines.Clear;
    MemorysStatus.dwLength := SizeOf(MemorysStatus);
    GlobalMemoryStatus(MemorysStatus);
    with MemorysStatus do
    begin
    Memo1.Lines.Add(IntToStr(dwLength) + ' Size of Memory Status record');
    Memo1.Lines.Add(IntToStr(dwMemoryLoad) + '% Memory in use');
    Memo1.Lines.Add(IntToStr(dwTotalPhys) + ' Total Physical Memory in Bytes');
    Memo1.Lines.Add(IntToStr(dwAvailPhys) + ' Available Physical Memory in Bytes');
    Memo1.Lines.Add(IntToStr(dwTotalPageFile) + ' Total Bytes of Paging File');
    Memo1.Lines.Add(IntToStr(dwAvailPageFile) + ' Available Bytes in Paging File');
    Memo1.Lines.Add(IntToStr(dwTotalVirtual) + ' User Bytes of Address Space');
    Memo1.Lines.Add(IntToStr(dwAvailVirtual) + ' Available User Bytes of Address Space');
    end;
    end;



    غیرفعال کردن دکمه خروج فرم (Exit)


    procedure TForm1.FormCreate(Sender: TObject);
    var
    hwndHandle : THANDLE;
    hMenuHandle : HMENU;
    iPos : Integer;
    begin
    hwndHandle := FindWindow(nil,PChar(Caption));
    if (hwndHandle <> 0) then
    begin
    hMenuHandle := GetSystemMenu(hwndHandle,false);
    if (hMenuHandle <> 0 ) then
    begin
    DeleteMenu(hMenuHandle,SC_CLOSE,MF_BYCOMMAND);
    iPos := GetMenuItemCount(hMenuHandle);
    Dec(iPos);
    if iPos > -1 then
    DeleteMenu(hwndHandle,iPos,MF_BYPOSITION);
    end;
    end;
    End;



    ساختن فرمی برای اتصال به اینترنت با نوشتن نام کاربری و کلمه عبور و شماره تلفن



    procedure TForm1.Connect_ButtonClick(Sender: TObject);
    var
    cmd,par,fil,dir : PChar;
    begin
    cmd := 'Open';
    fil := 'rasdial.exe';
    par := PChar(EditEntry.Text + ' ' + EditUser.Text + ' ' +
    EditPass.Text + ' /PHONE:' + EditPhone.Text + ' /PHONEBOOK:c:\test.pbk');
    dir := 'C:';
    ShellExecute(Self.Handle,cmd,fil,par,dir,SW_SHOWMI NNOACTIVE);
    end;

    procedure TForm1.DisConnect_ButtonClick(Sender: TObject);
    var
    cmd,par,fil,dir : PChar;
    begin
    cmd := 'Open';
    fil := 'rasdial.exe';
    par := PChar(EditEntry.Text + ' /DISCONNECT');
    dir := 'C:';
    ShellExecute(Self.Handle,cmd,fil,par,dir,SW_SHOWMI NNOACTIVE);
    end;



    تغییر رنگ سطرهای یک جدول (StringGrid)

    یک StringGrid بر روی فرم گذاشته و در DrawCell آن کد زیر را بنویسید:

    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
    Rect: TRect; State: TGridDrawState);
    var
    dx : Integer;
    begin
    with (Sender as TStringGrid) do
    begin
    if(ACol = 0) or (ARow = 0) then
    Canvas.Brush.Color := clBtnFace
    else
    begin
    case ARow of
    1: Canvas.Font.Color := clGreen;
    2: Canvas.Font.Color := clRed;
    end;
    if ARow mod 2 = 0 then
    Canvas.Brush.Color := $00E1FFF9
    else
    Canvas.Brush.Color := $00FFEBDF;
    Canvas.TextRect(Rect,Rect.Left + 2,Rect.Top + 2,Cells[ACol,ARow]);
    Canvas.FrameRect(Rect);
    end;
    end;
    end;



    برش یک فرم و تبدیل آن به دو فرم

    var
    Pts: array [1..9] of TPoint;

    procedure TForm1.Button2Click(Sender: TObject);
    var
    I: integer;
    hRegion: THandle;
    begin
    InitSize := Width;
    Pts [1] := Point (0, 0);
    Pts [2] := Point (Width div 2, 0);
    Pts [3] := Point (Width div 2, Height);
    Pts [8] := Point (0, Height);
    Pts [9] := Point (0, 0);
    for i := 0 to 100 do
    begin
    Left := Left - 1;
    Width := Width + 2;
    Pts [4] := Point (Width - InitSize div 2, Height);
    Pts [5] := Point (Width - InitSize div 2, 0);
    Pts [6] := Point (Width, 0);
    pts [7] := Point (Width, Height);
    HRegion := CreatePolygonRgn (Pts, 9, alternate);
    SetWindowRgn (Handle, HRegion, True);
    Application.ProcessMessages;
    end;
    end;



    غیر فعال کردن TaskManager

    اگر مقدار ورودی تابع True باشد غیرفعال شده ولی اگر مقدار ورودی False باشد دوباره فعال خواهد شد.

    Procedure DisableTaskManager(Const State:Boolean);
    var
    Reg: TRegistry;
    begin

    Reg := TRegistry.Create;
    try
    Reg.RootKey := HKEY_CURRENT_USER;
    if Reg.OpenKey('\Software\Microsoft\Windows\CurrentVe rsion\Policies\System',
    True)
    then Reg.WriteInteger('DisableTaskMgr',Integer(State)); //typecast the boolean to convert it to 1 or 0
    finally
    Reg.CloseKey;
    Reg.Free;
    end;
    end;



    ایجاد اشیا به شکلهای دلخواه


    Procedure TForm1.FormCreate(Sender: TObject);
    begin
    SetWindowRgn(Edit1.Handle,CreateRoundRectRgn(2,2,E dit1.Width - 2,
    Edit1.Height - 2,15,15),True);
    SetWindowRgn(Button1.Handle,CreateRoundRectRgn(2,2 ,Button1.Width - 2,
    Button1.Height - 2,15,15),True);
    SetWindowRgn(Panel1.Handle,CreateRoundRectRgn(2,2, Panel1.Width - 2,
    Panel1.Height - 2,15,15),True);
    SetWindowRgn(ComboBox1.Handle,CreateRoundRectRgn(2 ,2,ComboBox1.Width - 2,
    ComboBox1.Height - 2,15,15),True);
    SetWindowRgn(Memo1.Handle,CreateRoundRectRgn(2,2,M emo1.Width - 2,
    Memo1.Height - 2,15,15),True);
    SetWindowRgn(ProgressBar1.Handle,CreateRoundRectRg n(2,2,ProgressBar1.Width - 2,
    ProgressBar1.Height - 2,15,15),True);
    end;



    حذف ، کپی ، انتقال یک پوشه با تمامی زیر پوشه و فایلهای درون آن

    Uses ShellApi;

    Function CopyDir(const fromDir, toDir: string): Boolean;
    var
    fos: TSHFileOpStruct;
    begin
    ZeroMemory(@fos, SizeOf(fos));
    with fos do
    begin
    wFunc := FO_COPY;
    fFlags := FOF_FILESONLY;
    pFrom := PChar(fromDir + #0);
    pTo := PChar(toDir)
    end;
    Result := (0 = ShFileOperation(fos));
    end;

    function MoveDir(const fromDir, toDir: string): Boolean;
    var
    fos: TSHFileOpStruct;
    begin
    ZeroMemory(@fos, SizeOf(fos));
    with fos do
    begin
    wFunc := FO_MOVE;
    fFlags := FOF_FILESONLY;
    pFrom := PChar(fromDir + #0);
    pTo := PChar(toDir)
    end;
    Result := (0 = ShFileOperation(fos));
    end;

    function DelDir(dir: string): Boolean;
    var
    fos: TSHFileOpStruct;
    begin
    ZeroMemory(@fos, SizeOf(fos));
    with fos do
    begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom := PChar(dir + #0);
    end;
    Result := (0 = ShFileOperation(fos));
    end;
    آخرین ویرایش به وسیله یوسف زالی : یک شنبه 10 دی 1396 در 10:06 صبح

تاپیک های مشابه

  1. ساخت سیستم عامل با دلفی
    نوشته شده توسط amin_omega در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 20
    آخرین پست: سه شنبه 12 بهمن 1400, 11:38 صبح
  2. فارسی نوشتن در دلفی
    نوشته شده توسط (امید) در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 11
    آخرین پست: چهارشنبه 18 بهمن 1385, 07:56 صبح
  3. کدها ،کامپونتها و ترفندهای برای وی بی
    نوشته شده توسط moustafa در بخش Access
    پاسخ: 1
    آخرین پست: دوشنبه 03 مهر 1385, 09:51 صبح
  4. ترد - آشنایی با ترد - نحوه بکارگیری در دلفی و ترفندهای استفاده
    نوشته شده توسط آیدا رضایی در بخش برنامه نویسی در Delphi
    پاسخ: 15
    آخرین پست: دوشنبه 29 اسفند 1384, 09:46 صبح

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

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