* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Aprile 18, 2024, 09:58:58 pm

Inserisci il nome utente, la password e la durata della sessione.

176 Visitatori, 0 Utenti

Autore Topic: Grafica "very old school"  (Letto 8559 volte)

Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Grafica "very old school"
« il: Agosto 09, 2013, 12:49:50 pm »
Ciao a tutti :)
Sto scrivendo un programmino di conversione dati che girerà solo in finestra DOS. Volevo infiocchettarlo con qualche fronzolo, tipo caratteri ascii semigrafici, come si faceva una volta, ma non riesco ad ottenere una corrispondenza tra caratteri dell'editor di Lazarus e caratteri nella finestra della console di windows. Al momento ho aggirato il problema utilizzando direttamente i codici ASCII (#202#205#186 ...). La cosa curiosa è che se utilizzo il codice ASCII direttamente funziona, ma se utilizzo la combinazione ALT+Codice ASCII all'interno di Lazarus, nel code editor il carattere è giusto, ma nella console no:

Codice: [Seleziona]
  writeln('Caratteri da codice ASCII: '#202#186);
  writeln('Caratteri inseriti direttamente: ╩║');

risultato:

Citazione
Caratteri da codice ASCII: ╩║
Caratteri inseriti direttamente: Ôò®Ôòæ

Anche SetConsoleCP() non sembra sortire effetti... Qualche idea?

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Grafica "very old school"
« Risposta #1 il: Agosto 09, 2013, 04:38:18 pm »
dovresti fare una prova e vedere come viene salvato nel sorgente il carattere inserito direttamente con ALT+codice.
Mi spiego meglio, dovresti aprire il sorgente pascal con un editor esadecimale e vedere che cosa ci trovi dove dovrebbe esserci un certo carattere (e secondo me ci trovi 3 caratteri per ogni singolo immesso). Da qualche parte credo di aver appreso che il sorgente pascal sia salvato da lazarus in UTF-8. Il compilatore potrebbe invece leggere le costanti stringa byte per byte (questo spiegherebbe i 6 caratteri ottenuti a fronte di 2 inseriti).

La prima cose che mi viene in mente è quella di vedere se il compilatore ha un qualche parametro per far interpretare le costanti nel sorgenti in UTF-8 ma, anche ci fosse la possibilità, nella finestrina dos... l'UTF-8 sarà letto bene? Ho qualche dubbio, ma non sarebbe male avere la risposta :P

Credo ti toccherà usare i cancelletti :D
Imagination is more important than knowledge (A.Einstein)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Grafica "very old school"
« Risposta #2 il: Agosto 09, 2013, 04:51:43 pm »
Anche SetConsoleCP() non sembra sortire effetti... Qualche idea?

hai provato con il valore 65001 (UTF-8)?
Imagination is more important than knowledge (A.Einstein)

Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Grafica "very old school"
« Risposta #3 il: Agosto 09, 2013, 05:41:57 pm »
Anche SetConsoleCP() non sembra sortire effetti... Qualche idea?

hai provato con il valore 65001 (UTF-8)?

Sì, ma da solo no basta, come ho scoperto :)
Una pezza (che però fa funzionare la baracca) è la seguente:

Codice: [Seleziona]
  SetConsoleOutputCP(850);
  WriteLn('Caratteri da codice ASCII: '#202#186);
  SetConsoleOutputCP(65001);
  WriteLn(UTF8String('Caratteri inseriti direttamente: ╩║'));

In più, bisogna impostare il carattere della console su Lucida Console invece di Raster. In questo modo c'è corrispondenza tra caratteri grafici inseriti nell'editor del codice e finestra della console  :D

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Grafica "very old school"
« Risposta #4 il: Agosto 09, 2013, 05:46:46 pm »
caspita è vero, ci voleva UTF8String, altro che opzione del compilatore

vabbè fa caldo... :D
Imagination is more important than knowledge (A.Einstein)

Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Grafica "very old school"
« Risposta #5 il: Agosto 09, 2013, 11:52:57 pm »
Altro problema... Il codice funziona bene, fino a quando non aggiungo la unit crt per colorare i caratteri... A quel punto va tutto a farsi benedire e tornano caratteri a casaccio  >:(

bonmario

  • Hero Member
  • *****
  • Post: 1300
  • Karma: +10/-1
Re:Grafica "very old school"
« Risposta #6 il: Agosto 10, 2013, 09:13:49 am »
La butto lì ... la uses di crt l'hai messa come ultima o come prima tra le uses? Se è come prima, può darsi che abbia qualche funzione/procedura con lo stesso nome di altre e che quindi viene letta da lì e non da dove veniva letta prima. Se è così, puoi provare ad aggiungerla per ultima. Se non è così ... boh !!!

Ciao, Mario

Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Grafica "very old school"
« Risposta #7 il: Agosto 10, 2013, 09:45:46 am »
Ho provato a metterla sia per prima che per ultima, ma il risultato non cambia

bonmario

  • Hero Member
  • *****
  • Post: 1300
  • Karma: +10/-1
Re:Grafica "very old school"
« Risposta #8 il: Agosto 10, 2013, 10:02:59 am »
Ho trovato questo con il tuo stesso problema, ma purtroppo non da soluzioni ... http://forum.lazarus.freepascal.org/index.php?topic=8973.0

Ciao, Mario

bonmario

  • Hero Member
  • *****
  • Post: 1300
  • Karma: +10/-1
Re:Grafica "very old school"
« Risposta #9 il: Agosto 12, 2013, 06:16:18 pm »
Confesso che non l'ho letto tutto, ma credo che questa segnalazione si riferisca allo stesso problema:
http://bugs.freepascal.org/view.php?id=24257

Ciao, Mario

Legolas

  • Global Moderator
  • Sr. Member
  • *****
  • Post: 366
  • Karma: +3/-0
Re:Grafica "very old school"
« Risposta #10 il: Agosto 13, 2013, 09:35:14 am »
Sì, infatti sembra essere correlato al mio problema. ora seguo l'evoluzione del bug, nel caso vi faccio sapere se ci sono novità ;)

 

Recenti

How To

Utenti
  • Utenti in totale: 785
  • Latest: gmax
Stats
  • Post in totale: 18771
  • Topic in totale: 2233
  • Online Today: 427
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 176
Total: 176

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.