Tips&Tricks I trucchi del mestiere

 

Come nascondere l'applicazione nella task bar

Per alcune applicazioni può essere utile inibire la visualizzazione del pulsante relativo sulla task bar. Per ottenere questo è sufficiente impostare la proprietà ShowMainForm di Application a False. In Windows 2000 e in Windows XP l'applicazione continuerà a essere visibile tra i processi presenti nel Task Manager: proprio dal task manager sarà possibile fermare la'applicazione. Fare in modo che l'applicazione giri in modalità nascosta, la rende assimilabile ad un servizio: ideale per tutte le applicazioni di monitoraggio e per quelle che restano in attesa di un determinato evento.

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.ShowMainForm:=False;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
	  

Come utilizzare tipi enumerated come variabili di controllo in un loop

Una caratteristica interessante de cicli for…do è quella di poter usare tipi enumerated al posto dei più comuni interi. Utilizzando questa proprietà possiamo incrementare notevolmente il livello di leggibilità del nostro codice, così com'è possibile notare nella porzione di codice riportata sul CD.

type
   TPosition = (poUnder, poLevel, poOver);
   .... 
 procedure TGraphForm.MeasureAll;
 Var
    Position: TPosition;
 begin
    for Position := Low(TPosition) to High(TPosition) do  Begin
      GraphPosition(Position);
    End;
 end;
	  

Come visualizzare informazioni relative alla occupazione di memoria

Il box "About" standard ingloba alcune interessanti informazioni statistiche sulla memoria. In particolare, attraverso il metodo PhysicalAvMemLbl è possibile conoscere la quantità di memoria complessivamente disponibile, mentre con MemoryInUseLbl si può ottenere la percentuale di memoria fisica occupata.

Procedure TAboutBox.FormCreate(Sender: TObject);
var
  MemoryStatus: TMemoryStatus;
begin
  GlobalMemoryStatus(MemoryStatus);
  PhysicalAvMemLbl.Caption := FormatFloat('#,###" KB"', MemoryStatus.dwTotalPhys / 1024);
  MemoryInUseLbl.Caption := Format('%d %%', [MemoryStatus.dwMemoryLoad]);
end;
	  

Come impostare le proprietà comuni a più controlli

Capita spesso di dover settare la medesima proprietà su più controlli: un caso tipico è la proprietà visible o anche enabled nelle interfacce. La procedura allegata al CD si occupa proprio di impostate la proprietà visible di un gruppo di oggetti TControl. La stessa procedura può essere facilmente modificata ed estesa per accedere ad altre proprierà degli oggetti. Un esempio di come utilizzare la procedura:
SetVisibleProp([NewBtn,OpenBtn,SaveBtn],UserState <> usNotAuthorized);
	  
Ed ecco il codice relativo alla procedura:

Procedure SetVisibleProp(Const ControlSet: array of TControl; Const NewState: Boolean);
Var
  i: Integer;
Begin
  for i:= Low(ControlSet) to High(ControlSet) do Begin
    TControl(ControlSet[i]).Visible := NewState;
  End;
End;