Come una sorta di esercizio di autoapprendimento, ho creato un modulo che contiene sei pannelli in un rettangolo 2x3 e voglio che si alternino tra visibile e invisibile uno dopo l'altro. Sto cercando di farlo utilizzando un ciclo for di qualche tipo. Potrei, naturalmente, scrivere qualcosa di simile:Come posso fare riferimento a un controllo il cui nome è determinato in fase di runtime?
Panel1.Visible := true;
Panel1.Visible := false;
Panel2.Visible := true;
Panel2.Visible := false;
Panel3.Visible := true;
etc. etc.
Ma questo richiede un bel po 'di battitura a macchina ed è abbastanza inefficiente quando decido lo voglio aspettare per 100 ms tra ogni passo. Ad esempio, dovrei quindi modificare tutti e sei i passaggi per attendere. Questo è fattibile per sei passi, ma forse un'altra volta voglio farlo centinaia di volte! Quindi penso che ci debba essere anche un modo per usare un ciclo for per questo, dove una variabile varia da 1 a 6 e viene usata nell'identificatore dell'oggetto. Quindi sarebbe qualcosa di simile:
for variable := 1 to 6 do begin
Panel + variable.Visible := true;
Panel + variable.Visible := false;
end;
Ora, questo ovviamente non funziona, ma spero che qualcuno qui mi può dire se questo è in realtà possibile e se sì, come. Forse posso usare una stringa come identificatore? La mia spiegazione è probabilmente piuttosto negativa perché non conosco tutti i termini tecnici, ma spero che il codice spieghi qualcosa.
Il problema non è l'aiuto. Devi imparare le basi della programmazione, e in questo caso gli array. Non si formano identificatori come quello in fase di esecuzione in una lingua come Delphi. –
La funzione di aiuto non è inutile, ma è solo aiuto non tutorial. –
Non ti riferisci a _variable_, ti stai riferendo a un oggetto, in particolare a un componente, il cui nome viene determinato in fase di esecuzione.In un linguaggio compilato come Delphi, non è possibile farlo realmente con una variabile, come un intero, solo con componenti, controlli o altri oggetti che sono memorizzati in un elenco in cui è possibile cercarli per nome. – jachguate