PDA

Visualizza la versione completa : Evento OnActiveFormChange in applicazione MDI


re dei giovani
26-06-2006, 13:17
ciao ragazzi/e ( in caso in questo forum girino anche rappresentanti del gentilsesso)

sto analizzando un listato d'esempio per la creazione di una applicazione MDI.
Nella stesura della classe madre ( chiamata TmAinForm), viene scritta la procedura TmainForm.FormCreate() che viene lanciata alla creazione della form madre.
All'interno di questa c' per una riga che mi lascia incerto:

Screen.OnActiveFormChange := UpdateMenuItems;

Ho guardato sul manuale delphi la classe TScreen e i suoi eventi e vediamo se ho capito:

questa riga di codice comporta il salvataggio delle mie voci di menu nella variabile globale Screen quando dovessi cambiare il form attivo nella finestra child?

E' cos o non cos? Se si quello che nn riesco a capire bene il perch devo fare UpdateMenuItems se il mio main men rimane nella finestra madre che non varia mai finch il programma in esecuzione? ...fORSE HO ANCORA IDEE POCO CHIARE quindi vi prego di darmi delucidazioni o in alternativa riferimenti per creare una buona applicaizone MDI e per chiarire il dubbio espresso prima :confused:

re dei giovani
26-06-2006, 13:38
CIAO SONO ANCORA IO....
ho capito ....praticamente succede questo:
lancio il programma
1 compare la finestra madre con dentro menu e toolbars;
2 alcune voci di questo menu devono essere disattivate come....stampa etc.. perch non ho ancora nessuna child form su cui applicarle.
3 Il metodo updatemenuitems, setta queste voci di menu (chiamiamole oscurabili) a seconda che ci siano 0,1 o pi childform.
ex: ho aperto la form figlia con testo quindi andando sul menu principale ad ex l'item stampa deve essere attivo, mentre se non c' nessuna form figlia deve essere disattivato.

Questa procedura ( scusate se l'ho chiamata metodo ma ho postumi da java) viene chiamata dall'evento Screen.onActiveFormChange; quindi tutte le volte che il focus passa da una child Form ad un'altra..............penso di aver centrato la spiegazione :)

alka
26-06-2006, 13:43
Onestamente, non ho capito il problema. :)

Il codice a cui fai riferimento lo hai scritto tu o fa parte della VCL? Oppure ancora, lo hai trovato da qualche parte?

P.S.: il termine "metodo" corretto, in quanto si tratta effettivamente di un metodo. :)

P.P.S.: l'interfaccia MDI deprecata... sei sicuro che sia proprio necessaria per la tua applicazione?

re dei giovani
26-06-2006, 15:27
....il mio intento creare un visualizzatore di immagini utilizzando programmazione a oggetti....purtroppo sono ancora acerbo sul delphi (ma il linguaggio scelto per il progetto che devo realizzare ) e quindi mi devo basare su un'applicazione che gi stata sviluppata in passato e che utilizza MDI.. questo il codice che sto smembrando ora per capire come posso riusarlo e cosa devo buttare via rispetto alle mie esigenze di progetto...qualche dritta da darmi?

alka
26-06-2006, 15:47
Onestamente, non saprei quale dritta darti, non avendo a che fare con il codice a tua disposizione, non so come meglio procedere nel tuo caso.

In generale, cerca magari di scindere la parte funzionale del programma, quella relativa al compito vero e proprio dell'applicazione, dai metodi dell'interfaccia grafica e infrastrutturali.

Loading