Newsgroup: it.comp.lang.delphi
Titolo: Form ShowModal non in evidenza.

Buongiorno a tutti voi del gruppo,
 
ogni tanto mi capita che dopo aver richiamato una form questa non si presenta "sopra" quella che l'ha chiamata ma "è nascosta da qualche parte".
 
Io quando richiamo una form a video scrivo per esempio :
 
 
        FSend := TfrmSendMessage.Create(nil, PARAMETRI);
        if Assigned( FSend ) then
        try
           FSend.ShowModal;
        finally
           FreeAndNil( FSend );
        end;
 
 
Questo comportamento mi capita più sovente quando gli utenti usano il mio programma con una sessione in Desktop remoto ...ma succede sporadicamente anche a chi la usa in rete interna.
 
A volte con ALT-TAB vado su un'altra applicazione aperta e poi ritornando sulla mia si visualizza correttamente la form che dovrebbe essere attiva.
 
A volte neanche con l'ALT-TAB viene visualizzata e devo chiudere il programma forzatamente da gestione attività e poi ri-eseguirlo.
 
Capita lo stesso a volte con i messaggi ( MessageBox ) che all'interno della form devo visualizzare all'utente. Rimangono "sotto".
 
Il form FMain ( quello che chiama tutte le altre form ) ha FormStyle = fsNormal così come le form che vado a richiamare.
 
Cosa posso provare a mettere per "forzare" la finestra chiamata a venire davanti alla chiamante ?
 
grazie per il supporto.
 
Alberto

 ogni tanto mi capita che dopo aver richiamato una form questa non si presenta "sopra" quella che l'ha chiamata ma "è nascosta da qualche parte".
 
E` un vecchio bug. Fa casino con lo z-order delle dialog. Da Delphi2006 in poi puoi specificare il parent.
 
Che versione di Delphi usi?
 
 
 

         if Assigned( FSend ) then
 
A cosa serve questo check?
Se la costruzione del form fallisce, a questa riga non arriverà mai.
 
A.

Il programma è scritto in D7.
Non è stato portato ancora in una nuova versione per questioni di tempo ...purtroppo
 
C'è qualcosa che posso fare come workaround ?
 
Grazie
 

 A.
 
lo toglierò....

> Nel costruttore della form non c'è nulla di particolare. 
 
Ok.
E' una cosa che ogni tanto rompe.
Così su 2 piedi, farei qualche prova impostando lo stile stayontop.
 
A.

 Cosa posso provare a mettere per "forzare" la finestra chiamata a venire davanti alla chiamante ?
 
Questo:
SetWindowPos(this->Handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_SHOWWINDOW);
 
dovrebbe forzare lo stayOnTop
 
-- 
Morde

 Buongiorno a tutti voi del gruppo,
 
come si fa ad usare ancora delphi nel 2017
mah!
 
 
-- 
La libertà è il bene più prezioso che l'uomo possa avere:
essa è data dalla possibilità di poter disporre di se stesso
senza controlli, coercizioni o costrizioni.

 
 
 
Quoto.
 
A.


...si usa Delphi quando si deve mantenere un programma scritto diversi anni fa per fare il quale c'è stato un investimento ed uno sviluppo non indifferente.
 
Inoltre si ha il dovere di mantenere dei clienti che hanno creduto in te e nel lavoro che hai fatto sviluppando un buon prodotto per il loro business e che ancora oggi a distanza di anni usano ancora preservandone l'investimento fatto.
 
Sfido chiunque di voi ad andare da un cliente e chiedergli di pagarti un anno di sviluppo ( se basta ) per arrivare a fargli avere un programma che alla fine dell'anno fa le stesse cose che faceva l'altro solo che questo è stato scritto un un linguaggio nuovo.
 
Riscrivere tutto sarebbe un investimento di risorse e di tempo non indifferente che non tutti possono permettersi di sopportare e sicuramente sono un costo molto superiore che non tenere aggiornato il software con nuove funzionalità e miglioramenti dato che comunque il Delphi ti premette di farlo visto che, comunque se ne dica, sono anni che viene sviluppato , mantenuto e integrato con le nuove tecnologie per quanto possibile.
 
Quanti altri linguaggi hanno preservato l'investimento e la compatibilità con quanto scritto anche più di 15 anni fa ?
 
Io mi ricordo di un Visual Basic dove tutti correvano ad usarlo per poi ritrovarsi a distribuire programmi e 1000 dll che andavano a cozzare con quanto i clienti avevano in casa ...per poi passare a VB net che di Visual Basic aveva solo il nome ( abbreviato ) con tutti i programmatori che hanno dovuto buttare via tutto e riscrivere da capo ...e poi arrivare a Visual Studio ( anche qui buttando via tutto quello che avevano fatto con VB net ) dove si sono trovati a sviluppare in un ambiente che chissà come mai ha assomiglia molto all'ambiente in qui i programmatori Delphi sviluppavano già da anni.
 
Delphi molti lo denigrano ma credo che ha permesso a molti programmatori di sviluppare programmi di ottima qualità quando non c'era niente altro in giro. Ha dato uno strumento per sviluppare ( che molti adesso copiano ) e ha dato da mangiare a molti sviluppatori che adesso non fanno altro sparargli contro e mi sembra molto ingrato questo.
 
Nulla da dire se questa mattina dovessi decidere di iniziare a sviluppare una nuova applicazione.
 
Alberto

 [CUT]
Concordo al 100%.
 
 
 
-- 
Morde

 come si fa ad usare ancora delphi nel 2017 
 
Infatti dovrebbe seguire il tuo esempio:
https://www.safaribooksonline.com/library/view/cobol-for-the/9780471722618/
 
 
 
-- 
Morde

> Io mi ricordo di un Visual Basic dove tutti correvano ad usarlo per poi ritrovarsi a distribuire programmi e 1000 dll che andavano a cozzare con quanto i clienti avevano in casa ...per poi passare a VB net che di Visual Basic aveva solo il nome ( abbreviato ) con tutti i programmatori che hanno dovuto buttare via tutto e riscrivere da capo ...e poi arrivare a Visual Studio ( anche qui buttando via tutto quello che avevano fatto con VB net ) dove si sono trovati a sviluppare in un ambiente che chissà come mai ha assomiglia molto all'ambiente in qui i programmatori Delphi sviluppavano già da anni.
 
Ciao Alberto,
 
con me stai sfondando una porta aperta, ho ancora la pelle d'oca ed i brividi ripensando il porting del progetto iniziale di mio cognato da VB5 a VB6 che, essendo agli albori di complessità non aveva niente.
 
Da quel momento ci ho rinunciato e da Delphi 1 a Delphi 7 ( mi sono fermato qui ) è stata una passeggiata.
 
Ciao da Enrico Giudici c/o Anthelios

 Quanti altri linguaggi hanno preservato l'investimento e la compatibilità con quanto scritto anche più di 15 anni fa ?
 
La stragrande maggioranza di quelli esistenti?

>
urca, brutta faccenda PL/SQL , produce ridondanza .... di risposte ;)
 
 
---
Questa email Ã¨ stata esaminata alla ricerca di virus da AVG.
http://www.avg.com
 
 

 
 
Grazie Acqua, un caro saluto anche a te!
 
-- 
Morde