Originariamente inviato da mondobimbi
wih è un costrutto del Pascal che non si ritrova in altri linguaggi (alemeno per quello che ho riscontrato io) ma che è per alcuni versi pratico e facilita spessa la lettura dei sorgenti
Io lo trovo fuorviante nella maggior parte dei casi, e ambiguo in molte situazioni (ad esempio, scrivendo Width all'interno dell'evento in un Form non è chiaro se ci si riferisce all'oggetto o al Form stesso... e il debugger considera solo quest'ultimo, cioè ignora il costrutto).

Un'alternativa al with è semplice: basta memorizzare il riferimento all'oggetto a cui si accede in una variabile.

codice:
var
  Qry: TQuery;
begin
  Qry := frmMain.QueryNodi;
  Qry.Close;
  Qry.SQL.Clear;
  Qry.SQL.Text:='select P_nome as NomePlaylist from PLAYLIST';
  Qry.Open;
  Qry.First;
  while not Qry.Eof do
    begin
      NomeNodo:= Qry.FieldByName('NomePlaylist').asstring;
      node := frmMain.trvLaterale.Items[0];
      frmMain.trvLaterale.Items.AddChild(node, NomeNodo);
      Qry.Next;
    end;
end;
Si evita così l'ambiguità del with mantenendo leggibilità ma soprattutto chiarezza dell'elemento a cui si fa riferimento (che è riportato in ogni istruzione).

Ciao!