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!