بانک آموزشی

بانک آموزشی

نرم افزار - سخت افزار - طراحی - برنامه نویسی _ ویروس شناسی ...
بانک آموزشی

بانک آموزشی

نرم افزار - سخت افزار - طراحی - برنامه نویسی _ ویروس شناسی ...

پی زدن فایل - Copy File In Delphi

با این Procedure می تونید یک فایل رو از سیستم به جای دیگر انتقال دهید.این رویه دو مقدار می گیرد که اولی فایل مورد نظر برای انتقال و پارامتر دومی مسیر جدید یا محل Past شدن.

ابتدا رویه را بصورت زیر تعریف کنید.

 

procedure CopyFile(const FromFile,ToFile : string);
var
FromF,ToF : File;
NumRead,NumWritten : integer;
Buf : Array[1..2048] of char;
begin
AssignFile(FromF,FromFile);
Reset(FromF,1);
AssignFile(ToF,ToFile);
Rewrite(ToF,1);
repeat
BlockRead(FromF,Buf,SizeOf(Buf),NumRead);
BlockWrite(ToF,Buf,NumRead,NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;
 

 

الان یه Button بذارید و از رویه استفاده کنید مثلاً

 

procedure TForm1.Button1Click(Sender: TObject);
begin
CopyFile('c:\camera.exe','d:\119.exe');
end;

ایجاد فرم شیشه ای یعنی فرمی که پشتش معلومه

فرمتون قشنگ می شه پس ازش استفاده کنید.....

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


هر چقدر عدد بزگتر باشه حالت شیشه ای فرم کمتره و بالعکس....

 

یه لرزاننده فرم - shake Form

procedure WindowShake(wHandle: THandle) ;
const   MAXDELTA = 4;
        SHAKETIMES = 500;
   var
     oRect, wRect :TRect;
     deltax : integer;
     deltay : integer;
     cnt : integer;
     dx, dy : integer;
   begin
 
GetWindowRect(wHandle,wRect) ;
oRect := wRect;
Randomize;
   for cnt := 0 to SHAKETIMES do
     begin     deltax := Round(Random(MAXDELTA)) ;
    deltay := Round(Random(MAXDELTA)) ;
    dx := Round(1 + Random(2)) ;
     if dx = 2 then dx := -1;
     dy := Round(1 + Random(2)) ;
      if dy = 2 then dy := -1;
       OffsetRect(wRect,dx * deltax, dy * deltay) ;
MoveWindow(wHandle, wRect.Left,wRect.Top,wRect.Right - wRect.Left,wRect.Bottom - wRect.Top,true) ;
      end;

MoveWindow(wHandle, oRect.Left,oRect.Top,oRect.Right - oRect.Left,oRect.Bottom - oRect.Top,true) ;
end;

از کار انداختن Alt+F4 در برنامه

اکثر شما شاید بخواهید که برنامه های شما فقط بوسله کلیدی که شما تعریف نموده اید بسته شود.

برای این کار باید کلیدهای ALT+F4 از کار بیفتد.

برای اینگونه عمل کنید:

در قسمت VAR در بالای قسمت IMPLEMENTATION یک متغییر به شکل زیر تعریف نمایید :

CV:BOOLEAN;

 در رویداد ON CLOSE QUERY این گونه بنویسید

CANCLOSE:=CV;

و در رویداد ONSHOW فر م اینگونه بنویسید

CV:=FALSE;

حال تا زمانی که این متغییر FALSE باشد فرم بسته نمیشود بنابراین در کلیدی که برای خروج تعریف مینمایید باید اینگونه عمل کنید

CV:=TRUE;

FORM.CLOSE;

با کلیک برروی Button اینترنت اکسپلورر باز شه و بره تو سایت موردن

Add Shellapi in uses then: => ابتدا -> ShellApi -> را به قسمت  -> Uses -> اضافه کنید

shellexecute(handle,'open','http://www.WOC.com',nil,nil,sw_show);

آیا کامپیوتر به شبکه متصل است؟

procedure TForm1.Button1Click(Sender: TObject);
begin
  if GetSystemMetrics(SM_NETWORK) and $01 = $01 then
    ShowMessage('Computer is attached to a network!')
  else
    ShowMessage('Computer is not attached to a network!');
end;

اتصال به SQL SERVER

ADOConnection1.ConnectionString

 := 'Server=Hostname;DataBase=DatabaseName
; ('  ADOConnection1.Open('UserName', 'Password
;  ADOConnection1.Connected
 := True

انتخاب مجموعه ای از رکوردها در DBGrid

طریقه انتخاب مجموعه ای از رکوردها در DBGrid  (فیلتر کردن رکوردهای انتحاب شده)

var
  x: Integer;
  BMList: array of TVarRec;
begin
  SetLength(BMList, dbgrid1.SelectedRows.Count);
  for X:=0 to dbgrid1.SelectedRows.Count - 1 do
  begin
    BMList[x].VType := vtPointer;
    BMList[x].VPointer := Pointer(dbgrid1.SelectedRows[x]);
    DataModule1.ADOTable1.GotoBookMark(BMList[x].VPointer);
  end;
  DataModule1.ADOTable1.FilterOnBookmarks(BMList);
end;

ایجاد خروجی از TDBGrid به قالب Excel

unit DBGridExportToExcel; 

interface 

uses 
  Windows, Messages, SysUtils, Classes, Graphics,

 Controls, Forms, Dialogs, 
  ExtCtrls, StdCtrls, ComCtrls, DB, IniFiles, Buttons, dbgrids

, ADOX_TLB, ADODB; 


type TScrollEvents = class 
       BeforeScroll_Event: TDataSetNotifyEvent; 
       AfterScroll_Event: TDataSetNotifyEvent; 
       AutoCalcFields_Property: Boolean; 
  end; 

procedure DisableDependencies(DataSet: TDataSet; 

var ScrollEvents: TScrollEvents); 
procedure EnableDependencies(DataSet: TDataSet;

 ScrollEvents: TScrollEvents); 
procedure DBGridToExcelADO(DBGrid: TDBGrid; FileName: string; 

SheetName: string); 


implementation 

//Support procedures: I made that in order to increase speed in 
//the process of scanning large amounts 
//of records in a dataset 

procedure DisableDependencies(DataSet: TDataSet; var

 ScrollEvents: TScrollEvents); 
begin 
     with DataSet do 
          begin 
               DisableControls; 
               ScrollEvents := TScrollEvents.Create(); 
               with ScrollEvents do 
                    begin 
                         BeforeScroll_Event := BeforeScroll; 
                         AfterScroll_Event := AfterScroll; 
                         AutoCalcFields_Property := AutoCalcFields; 
                         BeforeScroll := nil; 
                         AfterScroll := nil; 
                         AutoCalcFields := False; 
                    end; 
          end; 
end; 

procedure EnableDependencies(DataSet: TDataSet;

 ScrollEvents: TScrollEvents); 
begin 
     with DataSet do 
          begin 
               EnableControls; 
               with ScrollEvents do 
                    begin 
                         BeforeScroll := BeforeScroll_Event; 
                         AfterScroll := AfterScroll_Event; 
                         AutoCalcFields := AutoCalcFields_Property; 
                    end; 
          end; 
end; 

//This is the procedure which make the work: 

procedure DBGridToExcelADO(DBGrid: TDBGrid;

 FileName: string; SheetName: string); 
var 
  cat: _Catalog; 
  tbl: _Table; 
  col: _Column; 
  i: integer; 
  ADOConnection: TADOConnection; 
  ADOQuery: TADOQuery; 
  ScrollEvents: TScrollEvents; 
  SavePlace: TBookmark; 
begin 
  // 
  //WorkBook creation (database) 
  cat := CoCatalog.Create; 
  cat._Set_ActiveConnection('Provider=Microsoft.Jet.OLEDB.4.0; 

Data Source=' + FileName + ';Extended Properties=Excel 8.0'); 
  //WorkSheet creation (table) 
  tbl := CoTable.Create; 
  tbl.Set_Name(SheetName); 
  //Columns creation (fields) 
  DBGrid.DataSource.DataSet.First; 
  with DBGrid.Columns do 
    begin 
      for i := 0 to Count - 1 do 
        if Items[i].Visible then 
        begin 
          col := nil; 
          col := CoColumn.Create; 
          with col do 
            begin 
              Set_Name(Items[i].Title.Caption); 
              Set_Type_(adVarWChar); 
            end; 
          //add column to table 
          tbl.Columns.Append(col, adVarWChar, 20); 
        end; 
    end; 
  //add table to database 
  cat.Tables.Append(tbl); 

  col := nil; 
  tbl := nil; 
  cat := nil; 

  //exporting 
  ADOConnection := TADOConnection.Create(nil); 
  ADOConnection.LoginPrompt := False; 
  ADOConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;

 Data Source=' + FileName + ';Extended Properties=Excel 8.0'; 
  ADOQuery := TADOQuery.Create(nil); 
  ADOQuery.Connection := ADOConnection; 
  ADOQuery.SQL.Text := 'Select * from [' + SheetName + '$]'; 
  ADOQuery.Open; 


  DisableDependencies(DBGrid.DataSource.DataSet, ScrollEvents); 
  SavePlace := DBGrid.DataSource.DataSet.GetBookmark; 
  try 
  with DBGrid.DataSource.DataSet do 
    begin 
      First; 
      while not Eof do 
        begin 
          ADOQuery.Append; 
          with DBGrid.Columns do 
            begin 
              ADOQuery.Edit; 
              for i := 0 to Count - 1 do 
                if Items[i].Visible then 
                  begin 
                    ADOQuery.FieldByName(Items[i].Title.Caption).

AsString := FieldByName(Items[i].FieldName).AsString; 
                  end; 
              ADOQuery.Post; 
            end; 
          Next; 
        end; 
    end; 

  finally 
  DBGrid.DataSource.DataSet.GotoBookmark(SavePlace); 
  DBGrid.DataSource.DataSet.FreeBookmark(SavePlace); 
  EnableDependencies(DBGrid.DataSource.DataSet, ScrollEvents); 

  ADOQuery.Close; 
  ADOConnection.Close; 

  ADOQuery.Free; 
  ADOConnection.Free; 

  end; 

end; 

end. 

زمان و تاریخ باز شدن یک فایل

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

خوب شروع می کنیم یک Button , یک Memo روی فرم بذارید و برای Button دستورات زیر را بنویسید. 

procedure TForm1.Button1Click(Sender: TObject);
var
SearchRec : TSearchRec;
Success : integer;
DT : TFileTime;
ST : TSystemTime;
begin
Memo1.Font.Name:='Tahoma';
Success := SysUtils.FindFirst('c:\Yahoo!\YPager.exe'{ اسم و آدرس فایل با پسوند },faAnyFile,SearchRec);
if (Success = 0) and
((SearchRec.FindData.ftLastAccessTime.dwLowDateTime <> 0 ) or
(SearchRec.FindData.ftLastAccessTime.dwHighDateTime <> 0 )) then
begin
FileTimeToLocalFileTime(SearchRec.FindData.ftLastAccessTime,DT);
FileTimeToSystemTime(DT,ST);
Memo1.Lines.Clear;
Memo1.Lines.Add('آخرین زمان و تاریخ دسترسی به فایل ');
Memo1.Lines.Add('سال = ' + IntToStr(ST.wYear));
Memo1.Lines.Add('ماه = ' + IntToStr(ST.wMonth));
Memo1.Lines.Add('روز از هفته= ' + IntToStr(ST.wDayOfWeek));
Memo1.Lines.Add('روز = ' + IntToStr(ST.wDay));
Memo1.Lines.Add('ساعت = ' + IntToStr(ST.wHour));
Memo1.Lines.Add('دقیقه = ' + IntToStr(ST.wMinute));
Memo1.Lines.Add('ثانیه= ' + IntToStr(ST.wSecond));
Memo1.Lines.Add('میلی ثانیه = ' +IntToStr(ST.wMilliseconds));
end;
SysUtils.FindClose(SearchRec);

end;