Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Diego1981 - Agosto 18, 2016, 09:58:19 am

Titolo: Copiare Proprietà
Inserito da: Diego1981 - Agosto 18, 2016, 09:58:19 am
Ciao Ragazzi
qualcuno ha idea di come copiare le propireta di un componente ad un altro creato a run time?
Per essere chiaro
inserisco in una form una label e ne setto tutte le proprietà (font, testo, altezza e quant'altro), poi a run time dovrei generarne altre con le medesime proprietà
L'intenzione è quella di non dever scrivere il codice per settera tutto nello stesso modo.
Ho già googlato un po' ma non sono riuscito capire molto
spero di essere stato chiaro
grazie a tutti
Diego
Titolo: Re:Copiare Proprietà
Inserito da: bonmario - Agosto 18, 2016, 10:22:57 am
Avrei detto "Label2.Assign(Label1);", ma da un errore in esecuzione.

Io farei una procedura a cui passo come parametro la TLabel su cui deve agire. Al suo interno metterei tutte le formattazioni. Poi ti basta richiamare questa procedura per ogni TLabel che devi settare.

Ciao, Mario
Titolo: Re:Copiare Proprietà
Inserito da: Diego1981 - Agosto 18, 2016, 03:01:01 pm
Ciao Mario
per comodità stavo provando ad evitare la procedura che dici e vedere se c'era qualcosa di più veloce ma se proprio non c'è soluzione farò cosi
grazie
Titolo: Re:Copiare Proprietà
Inserito da: SB - Agosto 21, 2016, 10:57:13 am
Che io sappia di solito non ci sono meccanismi di copia automatica per il semplice fatto che le proprietà potrebbero essere delle strutture complesse che il compilatore non sa come copiare.
Secondo me la soluzione più rapida è predisporre un metodo di copia come ti è stato suggerito. E' lungo da scrivere e noioso da manutenere, ma di solito può bastare.
Se invece vuoi qualcosa di più generico (e molto più complesso) puoi documentarti sulla Run-Time Type Information (RTTI)
Titolo: Re:Copiare Proprietà
Inserito da: Diego1981 - Agosto 24, 2016, 02:40:52 pm
Ciao SB
grazie anche a te, in effetti ci sono dei sorta di copia/incolla qui e là su internet ma comunque sia è ancora meglio scrivere il codice come suggerite voi
Ciao
Diego
Titolo: Re:Copiare Proprietà
Inserito da: Stilgar - Settembre 03, 2016, 09:42:40 pm
Ciao Diego.
https://sourceforge.net/p/lazarusiug/liug/HEAD/tree/trunk/xml/Marshalling.pas
Qui mi sono divertito un pochino con gli oggetti. Guarda se ti può interessare. 😊
Stilgar