Newsgroup: it.comp.lang.delphi
Titolo: Riutilizzo di form

La domanda č probabilmente banale, ma io sto imparando, quindi tutto č
lecito...
Sto sviluppando un'applicazione un po' piů complessa del solito :) e
spesso si rendono necessarie piccole form di dialogo per la ricerca di
prodotti o la modifica di un credito.
Il mio problema č come creare una sola dialog ad esempio per la
ricerca di prodotti e poi utilizzarla in utte le parti del programma
in cui serve.
Il problema vero č che la form restituisce un valore e io non so come
recuperarlo ed usarlo nella parte di codice che l'ha richiamata.
Che fate mi aiutate?

esPremesso che non so che tipo di dato debba passarti tale form,potresti
creare una nuova proprieta'
public
    property Date: TDateTime read GetDate write SetDate;
(es. miaform.Date).
Guardati il codice della form PickDate dela MastApp negli esempi di
delphi...
Ciao
Kata32 <***nospam***
kat...@hotmail.com
***nospam***> ha scritto nel messaggio
...


 recuperarlo ed usarlo nella parte di codice che l'ha richiamata.
Ci sono vai modi.
Il + comodo è creare una serie di proprieta che puoi leggere dall'esterno.
Esempio...
Una dialog per l'inserimento di un  codice articolo ha una editbox (edit1);
Si richiama in questo modo:
function LeggiCodiceDaCercare(var ACodice: string): boolean;
begin
  Result := True;
  With TDialogCodice.Create(Self) do
  begin
    try
      if ShowModal = mrOk then
        ACodice := edit1.Text 
      else
        Result := False;  
    finally
      Free;
    end;
  end;
end;
In questo caso, trattandosi di un solo dato, si puo
anche pensare di accedere direttamente al componente visuale.
se ne hai di +, meglio le proprietà.
Bye
AS    
 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 in cui serve.
Disegni la form a design time coi soliti metodi.
Se gia' non ci sono, aggiungi i pulsanti OK, Annulla con opportuno
modalresult. Aggiungi una funzione Execute che torna o bool o un
modalresult (che sostanzialmente chiamera' ShowModal)
Aggiungi un campo e relativa proprieta' (public, quindi accessibile solo
a runtime) destinato a contenere il valore scelto dall'utente.
Uso:
var dlg: TMyDialogForm;
begin
  dlg := TMyDialogForm.Create(nil);
  try
    // eventuale inizializzazione della form
    if dlg.Execute then begin // utente ha premuto OK
      // uso di dlg.ProprietaRisultante
    end
    else // premuto Annulla o chiuso con pulsanti di sistema
      ;
  finally
    dlg.Free;
  end;
end;
Praticamente la si usa come un OpenDialog creato a runtime
(if Execute then ShowMessage(OpenDlg1.filename);)
Quando tutto funziona OK, puoi trasformare la tua form di dialogo in un
componente e/o sfruttare la VFI (VisualFormInheritance) per aggiungere
componenti / proprieta'.
Saluti
Paolo Arosio

in cui serve.
Costruisci un tuo form con un metodo pubblico:
function EseguiRicerca(var Risultato: String)
         : TModalResult;
E lo invochi dal chiamante con qualcosa del tipo:
var
  CodiceProdotto: String;
begin
  case EseguiRicerca(CodiceProdotto) of
    mrYes: ShowMessage('Prodotto trovato');
    mrNo: ShowMessage('Prodotto non trovato');
    mrCancel: ShowMessage('Ricerca annullata');
  end;
end;
p.s.: form di questo tipo apparterebbero, a buon diritto, al
framework orientato alle applicazioni che sto cercando di
realizzare.
-- 
Andrea Laforgia - walkietalkie(at)
libero.it
"Meglio cieco che negro" (Stevie Wonder)