PDA

Visualizza la versione completa : [DELPHI] Intercettare evento clic su intero Form


colde
17-01-2006, 16:10
Ciao a tutti,
ho una form con diversi oggetti e vorrei che cliccando in qualsiasi punto della form col mouse, venga chiusa la finestra. Ho inserito il gestore di eventi sulla form ma non sugli oggetti e se clicco col mouse sulla finestra, viene chiusa correttamente ma, se clicco su un qualsiasi oggetto inserito al suo interno, il comando close non funziona. Devo gestire l'evento per forza su ogni singolo oggetto oppure posso assegnarlo in modo ereditario?

Grazie

alka
17-01-2006, 16:52
Prima di addentrarmi in qualcosa di davvero complesso, mi Ŕ venuta in mente una possibile soluzione, poco ortodossa ma forse efficace.

Se non hai necessitÓ di interagire con alcun controllo di quel form (ad esempio, introdurre dati, premere pulsanti, ecc.) potresti banalmente aggiungere un controllo TImage che occupi tutta l'area del form (magari impostando la proprietÓ Align ad "alClient") e portarlo in primo piano rispetto agli altri controlli, ovviamente senza inserire alcuna immagine al suo interno.

Successivamente, ti basta inserire la chiusura del Form intercettando il clic sul controllo TImage e il gioco Ŕ fatto.

Ciao! :ciauz:

colde
17-01-2006, 17:50
:) Credo sia un'ottima soluzione.

In ogni caso, se ci fossero oggetti che interagiscono con eventi esterni, si dovrebbe affinare lo script relativo in modo da gestire le azioni possibili in base all'azione dell'utente, quindi non avrebbe molto senso la richiesta che ho fatto. Non so se Ŕ chiaro quello che ho scritto ma in ogni caso grazie dell'aiuto, come sempre.

:ciauz:

alka
17-01-2006, 17:53
Originariamente inviato da colde
In ogni caso, se ci fossero oggetti che interagiscono con eventi esterni, si dovrebbe affinare lo script relativo in modo da gestire le azioni possibili in base all'azione dell'utente, quindi non avrebbe molto senso la richiesta che ho fatto. Non so se Ŕ chiaro quello che ho scritto ma in ogni caso grazie dell'aiuto, come sempre.
Non Ŕ molto chiaro quello che hai scritto, ma se volevi sapere come fare per gestire eventi sui controlli che ti interessano, basta portarli in primo piano rispetto al controllo TImage. :)

colde
17-01-2006, 18:10
No non intendevo questo. Era pi¨ che altro una riflessione personale, da niubbo in delphi, e non credo tu ne abbia bisogno quindi sorvola su quello che ho scritto.

Un'altra cosa: come potrei fare per creare una form MDIForm in modo tale che alla sua chiusura venga aperta una seconda finestra MDIForm che funga da contenitore principale per ulteriori form MDIChild? In pratica ho la prima MDIForm con dimensioni ridotte e poi avrei la seconda MDIForm che dovrebbe aprirsi a tutto schermo in automatico in modo da contenere MDIChild.

alka
17-01-2006, 20:58
Originariamente inviato da colde
Un'altra cosa: come potrei fare per creare una form MDIForm in modo tale che alla sua chiusura venga aperta una seconda finestra MDIForm che funga da contenitore principale per ulteriori form MDIChild? In pratica ho la prima MDIForm con dimensioni ridotte e poi avrei la seconda MDIForm che dovrebbe aprirsi a tutto schermo in automatico in modo da contenere MDIChild.
GiÓ le interfacce MDI sono sorpassate e utilizzate pochissimo dalle versioni pi¨ recenti delle applicazioni, prima fra tutte Office, come puoi pensare di inserire all'interno del tuo programma ben due form che siano contenitori MDI?? :)

colde
18-01-2006, 00:07
:master: e cosa si usa ora? Potresti essere un po piu preciso? Indirizzi sull'argomento?

Grazie :ciauz:

alka
18-01-2006, 00:17
Originariamente inviato da colde
:master: e cosa si usa ora? Potresti essere un po piu preciso? Indirizzi sull'argomento?

Ti segnalo questo articolo (http://www.marco.breveglieri.name/index.php?page_id=22)... lo conosco bene, in quanto l'ho scritto io. :zizi:

colde
18-01-2006, 09:28
Interessante, lo leggo ora e spero di capirci qualcosa. Al limite chiedo all'autore :D

Grazie

Loading