Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: sanric - Marzo 23, 2024, 09:44:55 am

Titolo: [RISOLTO] Windows e console
Inserito da: sanric - Marzo 23, 2024, 09:44:55 am
Salve a tutti,
per ragioni diverse mi sono visto costretto ad usare Lazarus su di una postazione Windows 7 per un programma che utilizza un'interfaccia utente.
Non sono riuscito a trovare il comando per la visione della console: io uso spesso il comando WriteLn (come da istruzioni del buon Brian Kernighan  8)) per cercare di debuggare il mio codice ma non so come far uscire la console sotto Windows.
Mi viene il dubbio che non ci sia proprio...
Sono costretto ad usare dei noiosissimi ShowMessage()?  :-\
Grazie mille per le risposte.
Titolo: Re:Windows e console
Inserito da: quack - Marzo 23, 2024, 10:58:10 am
Per far comparire la consolle sotto Windows durante l'esecuzione del programma vai nella sezione configurazione e target delle opzioni progetto e togli la spunta su "Applicazione GUI WIN32".
E' tanto che non uso Windows, se non ricordo male non si può usare writeln a consolle chiusa, viene sollevata un'eccezione, ricordati di rimuoverli quando ripristinerai il flag,

Ciao
Titolo: Re:Windows e console
Inserito da: bonmario - Marzo 23, 2024, 07:34:41 pm
Non faccio questa cosa da anni, e non so se funziona ancora !
In alternativa a quanto consigliato da quack, potresti usare "debugln" invece di "writeln", e lanciare il tuo programma da prompt di DOS. Mentre il programma gira, dovresti vedere nella finestra del DOS sottostante i tuoi messaggi.

Ciao, Mario
Titolo: Re:Windows e console
Inserito da: sanric - Marzo 26, 2024, 06:49:08 pm
Mi sa che il metodo migliore sia quello di far apparire una form con una memo e scriverci lì sopra... :-[
Titolo: Re:Windows e console
Inserito da: quack - Marzo 26, 2024, 07:57:01 pm
Mi sa che il metodo migliore sia quello di far apparire una form con una memo e scriverci lì sopra... :-[
No, dai non mollare ! Ti complichi la vita per qualcosa che si risolve con poco.
Fammi capire, non hai trovato l'opzione "Applicazione GUI WIN32", l'opzione non funziona o non fa quello che desideri ?
In ogni caso lanciare l'applicazione dal promp dei comandi, come suggeriva bonmario, fa la stessa cosa e non può non funzionare.
Titolo: Re:Windows e console
Inserito da: slapshot - Marzo 26, 2024, 08:38:23 pm
Magari potresti anche provare la classe TEventLog:

https://lazarus-ccr.sourceforge.io/docs/fcl/eventlog/teventlog.html (https://lazarus-ccr.sourceforge.io/docs/fcl/eventlog/teventlog.html)
Titolo: Re:Windows e console
Inserito da: Stilgar - Marzo 26, 2024, 10:12:38 pm
Comoda.
Se metti che il tipo di log è su file, automaticamente trovi i log su file senza impazzire.
Altrimenti puoi usare le classiche variabili Output ed Input che sono implicite.
All'inizio del programma puoi mettere l'assegnazione di output su file, così tutti i tuoi write/writeln vengono convogliati su file. Al termine ricordati di fare una flush e chiudere il file. Non è garantito che abbia tutte le ultime scritture se non forzi la flush.




Stilgar.
Titolo: Re:Windows e console
Inserito da: DragoRosso - Marzo 26, 2024, 11:08:53 pm
Mi sa che il metodo migliore sia quello di far apparire una form con una memo e scriverci lì sopra... :-[
No, dai non mollare ! Ti complichi la vita per qualcosa che si risolve con poco.
Fammi capire, non hai trovato l'opzione "Applicazione GUI WIN32", l'opzione non funziona o non fa quello che desideri ?
In ogni caso lanciare l'applicazione dal promp dei comandi, come suggeriva bonmario, fa la stessa cosa e non può non funzionare.

Mi sa che il metodo migliore sia quello di far apparire una form con una memo e scriverci lì sopra... :-[

Funziona, ciò che ha indicato @Quack è quello più veloce e puoi usarlo senza includere o usare nulla (fermo restando utili comunque i consigli di @Stilgar, @slaphsot e @bonmario)

Se non è spuntata l'opzione viene aperta una finestra CMD con il programma. WriteLn opera li.
Vedi allegato.
Titolo: Re:Windows e console
Inserito da: sanric - Marzo 27, 2024, 08:16:08 am
Grazie a tutti per i consigli gentilissimi.  :)
Metto un [RISOLTO] sul thread!