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

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

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

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

رفع مشکل خطای دلفی 2010 در ویندوز 7 هنگام اجرا

uses  Windows, Registry;
procedure RemoveEmbarcaderoRadStudios2010AutoUpdate;
var  Reg: TRegistry; begin 
Reg := TRegistry.Create; 
try 
Reg.RootKey := HKEY_CURRENT_USER; 
if Reg.OpenKey(  '\Software\CodeGear\BDS\7.0\AutoRun\UpdateCheck', True  ) then 
Reg.WriteString('ProgramToRun', '') 
else 
ShowMessage('Registry entry not found'); 
Reg.CloseKey; 
finally 
Reg.Free; 
end;
end;

ریسمان در دلفی!

مقاله از آقای محمود مهری در باره Threading در دلفی


دانلود

تغییر فونت Hint


type

  TSaHint = class(THintWindow)

  public

    constructor Create(AOwner: TComponent); override;

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



constructor TSaHint.Create(AOwner: TComponent);

begin

  inherited Create(AOwner);

  with Canvas.Font do

  begin

    Name  := 'Verdana';

    Size  := Size + 15;

    Style := [fsBold, fsItalic];

  end;

end;



procedure TForm1.FormCreate(Sender: TObject);

begin

  HintWindowClass  := TsaHint;

end;

لیست دستگاههای صدا و Capture



uses System.SysUtils, System.Types, System.UITypes, System.Rtti, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Layouts, FMX.Memo, FMX.Media; type TForm3 = class(TForm) Button1: TButton; Memo1: TMemo; Label1: TLabel; Button2: TButton; Label2: TLabel; Memo2: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } NumberOfDevices : integer; public { Public declarations } end; implementation {$R *.fmx} uses System.TypInfo; procedure TForm3.Button1Click(Sender: TObject); var i : integer; begin // get the number of audio and video capture devices - if any NumberofDevices := TCaptureDeviceManager.Current.Count; Label1.Text := 'Devices: '+IntToStr(NumberOfDevices); Memo1.Lines.Clear; // for each capture device, display the index, name, media type and the state for i := 0 to NumberOfDevices-1 do begin Memo1.Lines.Add( IntToStr(i) + ': "' + TCaptureDeviceManager.Current.Devices[i].Name + '", Type: ' + GetEnumName(System.TypeInfo(TMediaType), Ord(TCaptureDeviceManager.Current.Devices[i].MediaType)) + ', State: ' + GetEnumName(System.TypeInfo(TCaptureDeviceState), Ord(TCaptureDeviceManager.Current.Devices[i].State)) ); end; end;

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

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