|
DEV POSTA devmail@infomedia.it |
A cura di Matteo Baccan |
|
C++: riferimenti incrociati Date due classi A e B, si vuole che A contenga un puntatore ad un oggetto di tipo B e B
contenga un puntatore ad un oggetto di tipo A. Nicolò Fioretti Risponde Lorenzo Vandoni (vandoni@infomedia.it) Finché si tratta di puntatori, il problema si risolve semplicemente con una forward declaration. Basta cioè dichiarare la classe A nell’include del file B e viceversa, con questa sintassi: class A; In questo modo si indica al compilatore che A è un nome di classe valido e quindi la
dichiarazione di un puntatore ad A viene accettato. Il legame con la classe vera e propria viene risolto
successivamente. C++: Activex MSChart Ho sviluppato un'applicazione in Visual C++, relativa al metodo Montecarlo. Ho ottenuto il
profitto per cinque prodotti e vorrei rappresentarlo graficamente. Giacomo Morosini Risponde Davide Infantino (infantino@infomedia.it) In Internet in realtà si trova abbastanza materiale sull'argomento. Per esempio un punto di
partenza è http://codeguru.earthweb.com/controls/MSChart.shtml.
Naturalmente bisognerà integrare quanto si legge con prove sul campo perché questo controllo ha i suoi
problemi, soprattutto perché la documentazione ufficiale non è di buona qualità. C++ Builder 5: VCL Ho dei problemi con l'utilizzo delle VCL in C++ Builder 5. Vorrei costruire, all'interno di
un oggetto TDBGrid, una lookup list senza derivarla da un dataset secondario. Secondo il manuale per fare
questo è necessario: costruire un campo di consultazione da associare al campo di database presente all'interno
dell'oggetto TDBGrid; generare un oggetto TLookupList a runtime; inserire all'interno di questo i
valori di ricerca utilizzando il metodo TLookupList::Add; assegnare l'oggetto TLookupList alla
proprietà LookupList del campo di consultazione costruito con il primo passaggio; assegnare il valore
"true" alla proprietà LookupCache del campo di consultazione. Claudio Colombo Risponde Franco Pingiori (pingiori@infomedia.it) Per ottenere tale risultato, la soluzione più semplice è intervenire sull'oggetto DBGrid. Per
aggiungere una drop list ad un campo, durante la stesura del programma, può servirsi dell'Object Inspector. I
passi sono: selezionare la proprietà Columns di DBGrid, selezionare il campo al quale vuole
associare la drop list, selezionare la proprietà PickList ed aggiungere le stringhe della lista. La PickList
è un oggetto TStrings. DBGrid1->Columns->Items[i]->PickList->Add("stringa"); ADO: come iniziare Sono un programmatore ASP e SQL Server 7.0. Ho iniziato, da poco, a programmare con Visual
Basic e vorrei realizzare una piccola applicazione che mi permetta di interagire con SQL Server da form Visual
Basic. Il problema è che, durante i miei tentativi, non riesco ad utilizzare correttamente l'oggetto ADO, che
invece utilizzo correttamente in ASP. Aurelio Nisticò Risponde Davide Infantino (infantino@infomedia.it) Su Internet esiste parecchia documentazione su ADO. Turbo Assembler Dove posso reperire su Internet una versione di Turbo Assembler Borland? Edoardo Mancini Risponde Luigi Morelli (morelli@infomedia.it) Come puoi immaginare, il Turbo Assembler è un prodotto commerciale.
Versioni limitate di Turbo Assembler possono essere trovate nelle distribuzioni Borland del C++Builder 2.0 e 3.0, ma la versione completa con Debugger e Profiler è una cosa diversa. Delphi: Paradox Sto lavorando ad una procedura in Delphi 3, su un database Paradox e mi ritrovo "nei
guai" sull'eliminazione dei dati da una tabella. Luca Pompermaier Risponde Leonardo Fiocchetti (fiocchetti@infomedia.it) Verificando il codice della versione 5 di Delphi ho visto che Empty table invoca l'API
BDE DbiEmptyTable, che effettivamente sembra, stando all'help e dalle prove che ho fatto, svuotare la
tabella inclusi eventuali file memo. Visual Basic: apertura sportello CD Sto lavorando da tempo a un software e, tra le sue opzioni, vorrei che l'utente potesse
aprire e chiudere lo sportellino del lettore CD. Domenico Mangione Risponde Davide Infantino (infantino@infomedia.it) Effettivamente chiudere o aprire lo sportellino con il controllo MCI a volte funziona ed altre
volte no. Sul sito Microsoft http://msdn.microsoft.com esistono
comunque due esempi per fare questo. HOWTO: Eject Removable Media on Windows 95 (Q168180) Purtroppo i due esempi sono in C e vanno quindi "tradotti" in Visual Basic. Java: codice a colori Vorrei inserire del codice Java all’interno dei file Word della mia tesi. Mi piacerebbe
però inserirlo a colori: commenti in grigio chiaro, keyword in blu, stringhe in rosso e così via. Giovanni De Martino Risponde Lorenzo Bettini (lettini@infomedia.it) Ho scritto e mantengo il programma GNU Source-highlight, che vuole essere una suite di programmi per generare documenti con syntax highlight dei listati scritti in certi linguaggi di programmazione. Al momento, di questo pacchetto fanno parte java2html e cpp2html, rispettivamente per Java e per C/C++. Il file HTML generato può essere inserito in documenti Word in modo abbastanza semplice, soprattutto se hai installato, con Office, la gestione delle pagine HTML. Inoltre puoi personalizzare i colori e lo stile del testo generato. Puoi scaricare il programma all'indirizzo http://www.gnu.org/software/src-highlite/. Visual C: linkare una libreria Sto tentando di scrivere un programma in Visual C che controlli la porta MIDI. Su un sito
Internet c'è scritto che nel programma occorre includere mmsystem.h e mmreg.h e linkare la libreria winmm.lib. #include<mmsystem.h> int main(void) } ma compaiono circa 80 errori di compilazione. Cos’ho dimenticato? Rosario Marino Risponde Davide Infantino (infantino@infomedia.it) Nel caso specifico un codice funzionante per Visual C potrebbe essere quello riportato sotto.
Dico potrebbe perché ci sono varie opzioni del compilatore che bisogna impostare perché funzioni, come
l'esclusione del "precompiled header", oppure l’avere aggiunto le librerie giuste nella fase di
link. #define WIN32_LEAN_AND_MEAN #include<windows.h> int main(int argc, char* argv[]) Access: aggiornamento record Ho scritto un'applicazione in ambiente Access 97 per la gestione degli ordini ed il relativo
carico/scarico dal magazzino. Per fare questo ho seguito i consiglio che ho trovato nella serie di articoli su
Access pubblicati da DEV. Non riesco però a risolvere un piccolo problema. Se un cliente ci ripensa e chiede
che una riga del modulo d'ordine venga cancellata, tutto procede nel modo corretto. Le quantità degli articoli
tornano al loro stato di partenza. Giovanni De Martino Risponde Lorenzo Vandoni (vandoni@infomedia.it) L'evento "su eliminazione" (Form_Delete nel codice) viene attivato una volta per ogni record da eliminare. L'evento "dopo conferma eliminazione", invece, viene attivato una volta sola. La soluzione quindi può essere quella di sfruttare il primo evento per memorizzare codici e quantità in un array, invece che in due semplici variabili, e quindi, nell'evento "dopo conferma eliminazione", si potrà scandire l'array per aggiornare tutti gli articoli.
|
|