یادداشت های برنامه نویس

تجربیات و سورس کدهای رایگان در زمینه برنامه نویسی دلفی و دیتابیس ها

یادداشت های برنامه نویس

تجربیات و سورس کدهای رایگان در زمینه برنامه نویسی دلفی و دیتابیس ها

آیا فایل در حال استفاده است؟

function IsFileInUse(FileName: TFileName): Boolean;
var
  HFileRes: HFILE;
begin
  Result := False;
  if not FileExists(FileName) then Exit;
  HFileRes := CreateFile(PChar(FileName),
                         GENERIC_READ or GENERIC_WRITE,
                         0,
                         nil,
                         OPEN_EXISTING,
                         FILE_ATTRIBUTE_NORMAL,
                         0);
  Result := (HFileRes = INVALID_HANDLE_VALUE);
  if not Result then
    CloseHandle(HFileRes);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  if IsFileInUse('d:\saeed\saeed.exe') then
    ShowMessage('File is in use.');
  else
    ShowMessage('File not in use.');
end;

highlight آیتم های Listbox هنگام حرکت ماوس

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  p: TPoint;
begin
  p.x := x;
  p.y := y;
  ListBox1.ItemIndex := ListBox1.ItemAtPos(P, True);
end;

UNdo در Memo وmemoField

Memo1.Perform(EM_UNDO, 0, 0);


تشخیص UNdo (یعنی متن تغییر کرده)



ButtonUndo.Enabled := Memo1.Perform(EM_CANUNDO, 0, 0);
ButtonUndo.Enabled := Memo1.CanUndo; 



پاک کردن حافظه Undo

  Memo1.Perform(EM_EMPTYUNDOBUFFER, 0, 0);

Memo1.ClearUndo; // in Delphi 4 or higher

انتخاب همه رکوردها DBgrid

برای انتخاب همه رکوردها در dbgrid از کد زیر استفاده کنید


function GridSelectAll(Grid: TDBGrid): Longint;
begin
  Result := 0;
  Grid.SelectedRows.Clear;
  with Grid.DataSource.DataSet do
  begin
    First;
    DisableControls;
    try
      while not EOF do
      begin
        Grid.SelectedRows.CurrentRowSelected := True;
        Inc(Result);
        Next;
      end;
    finally
      EnableControls;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  GridSelectAll(DBGrid1);
end;

خبر کردن کاربر در حالتی کمینه بودن برنامه

وقتی می خواهید موضوعی را به کاربر اطلاع بدهید و برنامه در حالت مینیمایز است(مثل پنجره های چت یاهو مسنجر)
از کد زیر میتونید استفاده کنید


FlashWindow(Handle, True); // فرم فعلی
 
FlashWindow(Application.Handle, True);//

سریال برای نصب دلفی XE3

سریال: MAFA-A3D7PD-FJBBAE-FACN

جستجو در فایل های راهنما(Help)

procedure HelpSearch(sHelpFName, sSearchKey: string);
var
  pc: PChar;
begin
  Application.HelpFile := sHelpFName;
  pc := StrAlloc(Length(sSearchKey) + 1);
  StrPCopy(pc, sSearchKey);
  Application.HelpCommand(HELP_PARTIALKEY, LongInt(pc));
  StrDispose(pc);
end;

مثال

HelpSearch('DELPHI.HLP', 'colors');


HelpSearch('DELPHI.HLP', '');