27/05/2024 - sihsandrea ha scritto:
offtopic? no ribattevo ad una tua affermazione, questa si offtopic, in quanto il mio accenno a delphi era una riflessione.
Quindi, se tu tiri in ballo Delphi che non c'entra nulla, e io rispondo perché ritengo tu abbia detto una cosa errata, la tua è una “riflessione” mentre il mio è un intervento OT. In poche parole, per non andare OT, io avrei dovuto evitare di rispondere a una cosa su cui ho un parere contrario. Sono interessanti queste “dinamiche”… :)
27/05/2024 - sihsandrea ha scritto:
da li, ho fatto il test di cui parlavo…
Quindi, avanzando nella questione di fatto hai proseguito l'OT, ma questo non è OT perché stai rispondendo al mio OT, quindi è lecito. :)
Tralasciando le battute, il problema del tuo test è nel fatto che è descritto puramente a parole e non è riproducibile, perché oltre a mancare il codice non è escludibile che nei passaggi sia stata effettuata una operatività che ha condotto all'errore e ha un motivo del tutto spiegabile, e che non abbia nulla a che fare con l'errore in sé.
27/05/2024 - sihsandrea ha scritto:
poi ho sollevato un problema: se non dai un nome, e metti piu' label, come fai a trovare il destinatario del cambio testo tra piu' label? sempre in vb.net (specifico a scanso di equivoci), perchè mi interessa.
Se io creo componenti a runtime, che sia Delphi o che sia VB.NET, non sto creando altroché oggetti.
Quando crei un qualsiasi oggetto che non sia un componente o un controllo visuale, e che quindi non ha un nome, come fai a memorizzarne il riferimento e a referenziarlo successivamente alla sua creazione? Ecco, se c'è un modo per farlo per quel tipo di oggetti, è ovvio che si può fare anche se l'oggetto in questione è un componente o un controllo, a prescindere dal fatto che abbia un nome.
Il modo per recuperare quel tipo di riferimento dipende dalla struttura dati scelta per memorizzarlo: magari io genero a runtime un pannello visuale per ogni prodotto e mi salvo in un dizionario con chiave “ID del prodotto” un valore che è il riferimento al suo pannello, oppure li metto in un campo del Form che è una lista di questi pannelli, oppure in un campo dedicato a un riferimento singolo… quel componente/controllo è un oggetto, nient'altro! Il nome è solo una scorciatoia per creare automaticamente un campo nella classe del Form in cui memorizzare il riferimento, ma non sei costretto a usare quel meccanismo di accesso. Ovvio che se devo creare due controlli con uno scopo preciso, a designtime, allora è il metodo più rapido per referenziare tali controlli. Ma se devo crearne N, a runtime, probabilmente il criterio è diverso e ricadere nell'uso del nome è solo una forzatura che spesso risulta (in quel contesto) inefficiente rispetto a un'altra struttura dati.
Magari mi inventerò un esempio in codice per spiegare meglio.