Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    c++ builder ciclo while background

    Buongiorno.
    Volevo chiedere un informazione.
    Ho scritto un programma in c++ builder che elabera continuamente dei dati da un ciclo while quasi infinito e visualizza delle immagine tramite lo strumento image su una form.
    Ho scritto tutto questo lavoro nel form create.
    Ora quando mando in esecuzione, Non posso accedere a altre opzioni nel menu della form in quanto è bloccata del ciclo while e non posso cliccare...
    Domanda; è possibile mandare il processo in background, visualizzare le immagini (quando vengono ricevute) sulla form e intanto poter accedere a altre funzioni del programma nel menu?
    Grazie!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Devi utilizzare un altro thread ... ovviamente avrai difficoltà di sincronizzazione, da risolvere a seconda del caso specifico.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    come faccio a usare un altro thread.
    Mi puoi fare un esempio...
    non li ho mai usati
    grazie

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se non hai mai usato i thread, non ti basterà certamente un esempio (a parte che ne trovi ovunque su internet). Ti consiglio di studiare l'argomento da un buon libro e con tanti esercizi per un tempo appropriato.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    non c'è un metodo "semplice" per capire come devo operare?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    La gestione dei thread non è semplice ma puoi inserire una

    Application->ProcessMessages();

    all'interno del ciclo per cercare di garantire la gestione dei messaggi e quindi la gestione della GUI.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7

    Re: c++ builder ciclo while background

    Originariamente inviato da luigi.ghi67
    Ho scritto tutto questo lavoro nel form create.
    E' meglio non usare OnCreate in C++. Utilizza il costruttore del form.

    Originariamente inviato da luigi.ghi67
    Ora quando mando in esecuzione, Non posso accedere a altre opzioni nel menu della form in quanto è bloccata del ciclo while e non posso cliccare...
    Come ti hanno già suggerito, una ProcessMessages può fare da pezza, ma la soluzione migliore è di spostare il ciclo in un thread. La VCL ha una classe pronta e relativamente semplice per questo: TThread. Comincia a guardare l'help in linea per quello.

    Originariamente inviato da luigi.ghi67
    Domanda; è possibile mandare il processo in background, visualizzare le immagini (quando vengono ricevute) sulla form e intanto poter accedere a altre funzioni del programma nel menu?
    Ovviamente sì, l'unico accorgimento è che non puoi accedere agli elementi del form direttamente dal thread secondario. Anche per questo aspetto la classe TThread ha un metodo apposito (Synchronize), comunque ci sono anche altre modalità.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.