Come leggere lo stato del CAPS LOCK

Nel codice che segue la funzione IsCapsLockOn ritorna True o False il tasto attivato o disattivato.

function IsCapsLockOn : boolean; 
begin 
Result := 0 <> (GetKeyState(VK_CAPITAL) and $01); 
end;

Come spostare il focus all'oggetto successivo o precedente

Per spostare il focus all'oggetto successsivo usare:

SelectNext(ActiveControl as TWinControl,True,True );

per il precedente usare:

SelectNext(ActiveControl as TWinControl,False,True );

Come ricavare il nome della window posizionata in una specifica posizione dello schermo

La funzione NomeWindow ritorna in output il nome della window posizionata nelle coordinate x,y:

function NomeWindow( X, Y : integer ) : string;
var
  P : TPoint;
  W : TWinControl;
begin
  P.X := X;
  P.Y := Y;
  W := FindVCLWindow( P );
  if( nil <> W )then
  begin
    Result := W.Name;
  end else

  begin
    Result := '';
  end;
end;

Come leggere la data dell'ultimo accesso ad un file

Poche righe di codice per conoscere la “storia” di un file e in particolare quando si è verificato l’ultimo utilizzo dello stesso:
 
function Ultimoaccesso(sFileName : string ) : TDateTime;
var
  ffd : TWin32FindData;
  dft : DWord;
  lft : TFileTime;
  h   : THandle;
begin
    h := Windows.FindFirstFile(PChar(sFileName), ffd);
  if (INVALID_HANDLE_VALUE <> h) then
  begin
      Windows.FindClose( h );
      FileTimeToLocalFileTime(ffd.ftLastAccessTime, lft );
      FileTimeToDosDateTime(lft,LongRec(dft).Hi, LongRec(dft).Lo);
      Result := FileDateToDateTime(dft);
  end;
end; 

Come chiedere conferma per la chiusura di una applicazione

Con la procedura presentata di seguito si offre la possibilità all’utente di confermare una scelta delicata come la chiusura dell’applicazione:
 
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: 
Boolean);
begin
  if(mrNo = MessageDlg('Sei sicuro di voler terminare il programma?'', 
mtInformation,[mbYes, mbNo],0)) then
  begin
    CanClose := False;
  end;
end;

 Aprire e chiudere il carrello del lettore del CD

Per utilizzare queste due funzioni è necessario includere nel progetto la unit MMSYSTEM.

Procedure ApriCD; 
Begin 
mciSendString('Set cdaudio door open', nil, 0, 0); 
End; 

Procedure ChiudiCD; 
Begin 
mciSendString('Set cdaudio door closed', nil, 0, 0); 
End; 

Inviare una e-mail con il programma di posta elettronica predefinito

Per poter utilizzare il codice presentato, è necessario aggiungere al progetto la unit ShellApi

ShellExecute(Handle, 'open', 'mailto:
GiuseppeSgro@email.it?subject=mail', '', '', SW_SHOWDEFAULT); 

Lanciare il browser predefinito ed aprire una pagina web

Anche in questo caso è necessario aggiungere al progetto la unit ShellApi:

ShellExecute(Handle, 'open', 'http://www.delphitips.com', '', '', 
SW_SHOWDEFAULT); 

Come convertire un carattere nel suo corrispondente codice ascii

Nel seguente esempio viene convertito un carattere nel suo codice ascii e viceversa.

Label1.Caption:='Il codice ASCII del carattere "A" è ' + 
IntToStr(ord('A')); 
Label2.Caption:='Il carattere corripondente al codice ASCII 65 è' + 
chr(65); 

Lanciare un'applicazione ed attenderne la fine dell’esecuzione

Una porzione di codice utilissima, che consente una semplice interazione fra applicazioni diverse:

procedure Esempio;
var ProgramHandle : THandle;
begin 
ProgramHandle := WinExec('C:\Programma.exe', SW_SHOWNORMAL);
while GetModuleusage(ProgramHandle) <> 0 do 
application.processmessages;
 {Tutto ciò che verrà iserito qui sarà eseguito finchè non termina 
l'applicaizone esegiuta da winexec} 
end;