Potresti aggiungere alla sezione private della form secondaria un campo di tipo TFormOrigine (tipo della form primaria) nel quale memorizzare un riferimento alla form primaria chiamante che visualizza la form secondaria.
Tale valore può essere assegnato introducendo un nuovo metodo nella form secondaria al quale viene passato come parametro il riferimento alla form primaria da memorizzare all'interno del campo privato; successivamente, avviene la visualizzazione attraverso il metodo Show oppure ShowModal.
La classe della form secondaria richiamata potrebbe essere fatta così:
Il metodo ShowMe si potrebbe implementare in questo modo:codice:TCalledForm = class(TForm) private FCallingForm: TCallingForm; public procedure ShowMe(ACallingForm: TCallingForm); end;
Quando avviene un doppio clic sulla griglia, l'evento esegue tutte le operazioni necessarie incluso l'aggiornamento dell'etichetta sulla form chiamante di tipo TCallingForm:codice:procedure TCalledForm.ShowMe(ACallingForm: TCallingForm); begin FCallingForm := ACallingForm; ShowModal; end;
Spero di aver reso il concetto.codice:procedure TCalledForm.DBGrid1DblClick(Sender: TObject); begin if FCallingForm <> nil then FCallingForm.SomeLabel.Caption := DBGrid1.Fields[0].AsString; end;![]()

Rispondi quotando