View Full Version : [C++] DialogBlock & wxWidgets: eventi propri
trallallero
26-10-2007, 13:40
Ho fatto una matrice dinamica di pulsanti, creati quindi da codice e non via designer. Adesso dovrei dare un evento OnMouseClick a tutti i pulsanti ma ovviamente gestito da una sola funzione che, in seguito all'ID del pulsante, sa chi è stato a generare l'evento ... come si fa ? :help:
Sto cercando di capire qualcosa dalla documentazione ma non mi sembra spiegato benissimo ... o forse si ma è dalle 6:30 di stamani che sono in ufficio :zzz:
PS: ho dovuto anche discutere con uno che diceva che sia in C che in C++ non bisogna allocare matrici ma sempre array monodimensionali perchè le matrici etc sono unreadable :eek:
povero C :muro:
^TiGeRShArK^
26-10-2007, 14:08
PS: ho dovuto anche discutere con uno che diceva che sia in C che in C++ non bisogna allocare matrici ma sempre array monodimensionali perchè le matrici etc sono unreadable :eek:
povero C :muro:
ah? :mbe:
che s'era fumato quello? :fagiano:
per le wxwidgets non ho idea... :boh:
le ho usate solo con ruby per una sola applicazioncina ... :fagiano:
tomminno
26-10-2007, 14:09
Ho fatto una matrice dinamica di pulsanti, creati quindi da codice e non via designer. Adesso dovrei dare un evento OnMouseClick a tutti i pulsanti ma ovviamente gestito da una sola funzione che, in seguito all'ID del pulsante, sa chi è stato a generare l'evento ... come si fa ? :help:
Sto cercando di capire qualcosa dalla documentazione ma non mi sembra spiegato benissimo ... o forse si ma è dalle 6:30 di stamani che sono in ufficio :zzz:
PS: ho dovuto anche discutere con uno che diceva che sia in C che in C++ non bisogna allocare matrici ma sempre array monodimensionali perchè le matrici etc sono unreadable :eek:
povero C :muro:
Per intercettare l'evento click su un pulsante inserisci la macro
BEGIN_EVENT_TABLE(...)
...
EVT_BUTTON(id, TuaClasse::OnClick)
...
END_EVENT_TABLE()
Se vuoi che tutti i pulsanti eseguano OnClick basta passare -1 al campo id.
Il metodo sarà del tipo
void TuaClasse::OnClick(wxCommandEvent &event)
{
int id = event.GetId();
...
}
trallallero
26-10-2007, 14:37
Se vuoi che tutti i pulsanti eseguano OnClick basta passare -1 al campo id.
[/code]
ero arrivato a capire (nonostante il sonno :D) ma mi mancava solo questo dannato -1
grazie mille
ah? :mbe:
che s'era fumato quello? :fagiano:
ma insiste eh! gli ho detto che il C è tosto proprio per quello ...
poi gli ho detto: allora fammi una funzione che deve riempire una matrice ma non sa quanti valori e la lunghezza di questi valori e poi deve restituire il puntatore alla matrice ma riceve l'indirizzo dove mettere il puntatore alla matrice ... :uh: (cattivissimo son stato :asd:)
Gli ho fatto vedere che la soluzione migliore è un prototipo del tipo
funz( BYTE ***p)
e mi fa: e perchè dovresti fare una funzione del genere ? a che ti serve ?
:mbe: (non ha mai lavorato coi DB :asd:)
tomminno
26-10-2007, 20:15
ero arrivato a capire (nonostante il sonno :D) ma mi mancava solo questo dannato -1
grazie mille
Mi ero dimenticato di dirti che al posto di -1 sarebbe meglio usare la costante wxID_ANY (definita come -1)
ma insiste eh! gli ho detto che il C è tosto proprio per quello ...
poi gli ho detto: allora fammi una funzione che deve riempire una matrice ma non sa quanti valori e la lunghezza di questi valori e poi deve restituire il puntatore alla matrice ma riceve l'indirizzo dove mettere il puntatore alla matrice ... :uh: (cattivissimo son stato :asd:)
Gli ho fatto vedere che la soluzione migliore è un prototipo del tipo
funz( BYTE ***p)
e mi fa: e perchè dovresti fare una funzione del genere ? a che ti serve ?
:mbe: (non ha mai lavorato coi DB :asd:)
Per fortuna sono passato al C++ prima di dover trovarmi a scrivere un puntatore triplo!
Sinceramente c'è da perderci la testa.
^TiGeRShArK^
26-10-2007, 20:39
Mi ero dimenticato di dirti che al posto di -1 sarebbe meglio usare la costante wxID_ANY (definita come -1)
:mbe:
questo mi fa ricordare quei GENI che hanno sviluppato il framework sul quale lavoro per ora (sfortunatamente :sob: ) che hanno definito costanti del genere:
SEPARATOR = ";"
SPACE = " "
EQUALS = "="
:muro:
cose da prendere un bel palo alto 3 metri e fare come faceva il caro vecchio conte VLAD :muro:
si... perchè non si sa mai dovessero cambiare lo spazio, il ; o l'uguale in qualche nuova versione di JAVA :muro:
e non parliamo di tutte le cose che hanno wrappato (hanno anche avuto il coraggio di wrappare l'Event Dispatcher Thread dell' AWT :muro::muro::muro: ) che mi scende la depressione :sob:
trallallero
27-10-2007, 07:08
Mi ero dimenticato di dirti che al posto di -1 sarebbe meglio usare la costante wxID_ANY (definita come -1)
beh, grazie ancora. Comunque devo dire che è veramente ottimo, sia wxWidgets che DialogBlocks ma soprattutto il primo :)
Per fortuna sono passato al C++ prima di dover trovarmi a scrivere un puntatore triplo!
Sinceramente c'è da perderci la testa.
io invece ci sguazzo felice nelle triplette! :D
e comunque se non ti senti a tuo agio (non siamo tutti uguali per fortuna) usi il Java, il VB, non è che dici in C/C++ non si allocano matrici ma solo array
...
si... perchè non si sa mai dovessero cambiare lo spazio, il ; o l'uguale in qualche nuova versione di JAVA :muro:
e non parliamo di tutte le cose che hanno wrappato (hanno anche avuto il coraggio di wrappare l'Event Dispatcher Thread dell' AWT :muro::muro::muro: ) che mi scende la depressione :sob:
va la che mi sa che il peggio l'ho visto io, nel mio primo lavoro:
#define CENTO 100
:sbonk:
(chissà se bazzica quì nel forum un certo Fortunato con cui ho lavorato su quel progetto e col quale ci siam fatti grasse risate grazie alle porcate trovate nel codice :asd:)
tomminno
29-10-2007, 08:39
io invece ci sguazzo felice nelle triplette! :D
e comunque se non ti senti a tuo agio (non siamo tutti uguali per fortuna) usi il Java, il VB, non è che dici in C/C++ non si allocano matrici ma solo array
In C magari, in C++ probabilmente passi un riferimento ad una classe matrice...
trallallero
29-10-2007, 08:47
In C magari, in C++ probabilmente passi un riferimento ad una classe matrice...
mica è obbligatorio
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.