Giuseppe Parrello

 

Borland C++ e OWL


In questa pagina fornisco il codice sorgente e i file eseguibili di due progetti scritti da me negli anni 1998-2000 con il compilatore "Borland C++ 5.02" e con la libreria "Borland Object Windows Library" (OWL). Il compilatore non è più supportato, come anche la suddetta libreria OWL. Parte del codice sorgente è stato ripreso da alcuni programmatori e inserito in un progetto Open Source con il nome di "OWLNext" - questo è il link del sito Internet.
I miei due seguenti progetti non sono da me più supportati.


Progetto ButtonApp

La versione 2.0 del progetto ButtonApp è la seconda versione di un'applicazione di prova che usa il sottosistema dei gadget di OWL come gadget pulsanti, gadget di testo, gadget divisori e altri tipi di gadget. Parti del codice della prima versione sono state riscritte per supportare il registry invece del file predefinito .ini, per supportare la capacità di memorizzare e ripristinare diversi parametri e diverse opzioni di quest'applicazione. Ad esempio quando eseguite quest'applicazione verranno create le seguenti chiavi nel registry iniziando dal ramo "HKEY_CURRENT_USER\Software\JoParrello\ButtonApp32\2.0":

Le suddette chiavi vengono create nella modalità target Win32. Il target Win16 ha le chiavi in un altro ramo del registry, ma tali chiavi rimangono le stesse. La peculiarità di questa applicazione è che essa gira benissimo sia in Windows 3.1 sia in Windows 95, senza problemi e senza limitazioni. Una delle più grandi peculiarità di OWL è che esso può 'nascondere' le differenze tra le applicazioni a 16 bit e le applicazioni a 32 bit.
Tutto questo codice è stato provato usando CodeGuard, sia in Windows 95 prima versione e sia in Windows 3.10.
Il CodeGuard riporta un errore dovuto alle funzioni 'GetSubMenu' e 'GetFTime'. Per evitare questi continui errori, ho incluso un file .CGI (un file di configurazione di CodeGuard), il quale previene il manifestarsi di questi errori. Devo ringraziare CodeGuard poiché ha scoperto parecchi bug e parecchi problemi nelle classi, come in JPFlatTextButtonGadget e in altre classi.

Con questo progetto è possibile avere:


Novità

Una nuova peculiarità della versione 2.0 è il Color Picker Piatto, visualizzato nelle immagini qui sotto. Nell'immagine di sinistra potete osservare la finestra del color picker aperta dal gadget FlatColorPicker. Su questa finestra del color picker potete selezionare un colore. Il colore selezionato è attualmente visualizzato come premuto (nell'immagine il colore è il rosso). Nella seconda immagine potete osservare il gadget FlatColorPicker nella sua normale posizione, ed il colore selezionato viene disegnato dentro l'ellisse sotto il carattere 'P'.

La finestra del Color Picker è aperta Il Color Picker visualizza il colore attualmente selezionato

Come potete osservare nelle due immagini qui sotto la versione 2.0 supporta il disegno dei pulsanti a scala di grigio come in Internet Explorer. Nell'immagine a sinistra potete osservare lo stato normale del pulsante 'Apri', nell'immagine a destra potete osservare lo stato 'hot-tracked' di tale pulsante.

Posizione normale Posizione 'Hot-Tracked'

Un'altra peculiarità di ButtonApp2 è la finestra di dialogo per la personalizzazione delle barre strumenti. Come potete vedere nell'immagine qui sotto avete i pulsanti disponibili che possono essere inseriti nella barra strumenti attualmente elencata. Inoltre potete modificare la barra strumenti attualmente elencata, potete ripristinare tutte le barre strumenti e spostare sopra o sotto un singolo gadget.

Finestra di dialogo per la personalizzazione delle barre strumenti

Nella seguente immagine, si può vedere una combobox per i font con una finestra di anteprima del font.

Una combobox per i font con una finestra di anteprima del font.

Nella seguente immagine, si può vedere un controllo che può diventare un pulsante gadget piatto.

Un controllo che può diventare un pulsante gadget piatto.

Nella seguente immagine, si possono vedere barre strumenti piatte con margini sottili e linee orizzontali.

Nuove barre strumenti piatte con margini sottili e linee orizzontali.

Nella seguente immagine, si può vedere una visione d'insieme dove tutto è piatto.

Ora tutto è piatto!!!!.

 

Download

Tipo File Dimensione Build Data
Eseguibile btn22app_preview.zip 313 KB 2.2 24 Marzo 2000
Codice sorgente btn22app_beta.zip 216 KB 2.2 24 Marzo 2000

 

Cronologia

Build Data
2.2 24 Marzo 2000
2.1 15 Dicembre 1998
2.0 18 Agosto 1998
1.0 15 Maggio 1998

 

Bug, suggerimenti e approfondimenti

File Data Informazioni tecniche
JP000001.TXT 16 Marzo 1998 TI000001 - TI000007
JP000002.TXT 16 Maggio 1998 TI000008 - TI000011

 

Documentazione classi

Classe Versione Data
JPDialog 2.1 31 Luglio 1998
JPMRURegistry 2.0 18 Agosto 1998
JPPropertySheet - JPPropertyPage 2.0 31 Luglio 1998
JPTooltipSupport 2.0 31 Luglio 1998

 

Progetto RichEditApp

La versione 1.0 del progetto RichEditApp è la versione aggiornata del progetto di esempio fornito con il compilatore Borland C++ 5.02 e permette di avere un programma minimale di elaborazione di testi usando alcune classi da me scritte per il precedente progetto ButtonApp. Nella seguente immagine, si può vedere una visione d'insieme di questo progetto.

Immagine d'insieme di RichEditApp

Nella seguente immagine, si può vedere una combobox per i font con una finestra di anteprima del font.

Una combobox per i font con una finestra di anteprima del font.

 

Download

Tipo File Dimensione Build Data
Eseguibile rea10app_preview.zip 265 KB 1.0 20 Marzo 2000
Codice sorgente rea10app_beta.zip 79 KB 1.0 20 Marzo 2000

 

Cronologia

Build Data
1.0 20 Marzo 2000

 

Copyright, Disclaimer, Licenza d'uso

Questo prodotto software ed ogni tipo di documentazione ad esso relativa viene fornito "così come è", senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. L'intero rischio derivante dall'uso o dalle prestazioni di questo prodotto software rimane a carico dell'utente.
In nessuna circostanza l'Autore potrà essere ritenuto perseguibile di danni speciali, conseguenti, accidentali o indiretti o di qualsiasi altra natura (compresi, senza limitazioni, danni per perdita di profitti, interruzione dell'attività, perdita di informazioni commerciali, o altre perdite di denaro) derivanti dall'uso o dall'impossibilità di usare il presente prodotto, anche qualora l'Autore sia a conoscenza della possibilità di tali danni e di difetti noti.
Questo prodotto software viene rilasciato come FREEWARE. Non è richiesto nessun pagamento e nessuna registrazione.