Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 29 su 29
  1. #21
    Secondo me è un problema intrinseco di Visual Studio, che nella finestra di modifica dei dialog non dà ai controlli l'ID che gli assegni. Non puoi accontentarti del fatto che funzioni a runtime?
    Amaro C++, il gusto pieno dell'undefined behavior.

  2. #22
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    c'è una cosa che non ti ho detto , funziona solo se creo una variabile di istanza del controllo activex altrimenti nisba.
    è normale?
    grazie mille comunque sto per tirare i remi in barca e cercare di accontentarmi ma vorrei fare un altro piccolo sforzo.
    Quindi secondo te a designe time è impossibile e non vale la pena di provarci.
    altri modi?
    l'override di id o il getproperty dell' ole?
    e agganciarsi ad un cambiamento di property come si puo' fare per l'id , non esiste un dannato onpropertychanged(..,object newvalue)?
    grazie.

  3. #23
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    un ultima cosa , Mitaly,per il test del dialogo(se funzionasse quello sarei piu' che soddisfatto del mio lavoro) mi serve agganciarmi ad una stock property come puo' essere ad esempio la caption ,penso si dovrebbe fare nel metodo get,ma non c'è alcun metodo get nelle stock properties.
    grazie di tutto.
    ciao

  4. #24
    Originariamente inviato da giuseppe500
    c'è una cosa che non ti ho detto , funziona solo se creo una variabile di istanza del controllo activex altrimenti nisba.
    è normale?
    Be', certo... se non c'è un'istanza del controllo non c'è nemmeno il controllo , nel senso, non viene neanche visualizzato.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #25
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ho pensato ,dato che non ci sono i risultati sperati nel design time di utilizzare un dialog ereditato che all'oninit cicla i controlli,ne prende l'id e setta il testo con l'id caricando la stringa da stringtable.
    percio' non utilizzero' piu' activex,bensi' i normali controlli mfc della toolbar.
    L'unica cosa è che posso ereditare il mio dialog da cdialog,solo che non so cosa andare a mettere nel file .rc per dirgli che quel dialog non è piu' un dialog normale ma è il mio dialog ereditato.
    Ma i normali controlli che sono nella tool box sono mfc?cbutton,cedit ecc?
    posso ereditarli e andarli ad inserire nella toolbox?
    grazie infinite.

  6. #26
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    funziona anche premendo il pulsante di preview del dialog!
    adesso devo assolutamente trovare una funzione che cicla i controlli in un dialog ,non un dialog personalizzato,In pratica dovrei trovare il dialog dal controllo(che ho) e ciclare tutti i controlli in quel dialog.
    Devo partire pero' da un controllo non da un dialog , cosi' non devo derivare.
    mi dai l'ultimo aiuto?
    grazie

  7. #27
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    per intenderci , ho creato questo codice:
    CWnd* pWndCtl = GetNextDlgGroupItem( (CWnd*) NULL );

    CWnd* pFirstCtl = pWndCtl;
    do {
    HWND hwnd = pWndCtl->GetSafeHwnd();
    POSITION pos;

    pWndCtl = GetNextDlgTabItem(pWndCtl,0);
    pWndCtl->GetFocus();
    pWndCtl->GetDlgItemText(pWndCtl->GetDlgCtrlID(),result);
    AfxMessageBox(result);
    } while (pWndCtl && (pWndCtl != pFirstCtl));


    ma non funziona,almeno funziona il primo ciclo e basta , il problema sta nel tab , esiste un next generico al controllo successivo?
    gtrazie.

  8. #28
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    ho cambiato in base ad una nuova idea :
    inserisco nel form completato un piccolo activex button, e lancio il test del dialog.Premendo quel pulsante scorro tutti i controlli nel form e visualizzo a video il nome di ognuno.
    che funziona a runtime ma non nel controllo , nel controllo visualizza solo il primo!


    questo è il codice:
    pardon questo:

    CString str;
    CWnd* c;
    CWnd* cControl;
    CString result;

    CWnd* pWndCtl = GetNextDlgTabItem( (CWnd*) NULL );
    CWnd* pFirstCtl = pWndCtl;
    do {
    HWND hwnd = pWndCtl->GetSafeHwnd();
    pWndCtl->GetFocus();
    GetDlgItemText(pWndCtl->GetDlgCtrlID(),result);
    AfxMessageBox(result);
    pWndCtl = GetNextDlgTabItem(pWndCtl,0);

    } while (pWndCtl && (pWndCtl != pFirstCtl));




    che a runtime funziona , nel test del form no
    forse devo trovare il dialog parent del controllo?
    laltra parte dell' idea è che questo piccolo activex si occupa nache di iserire stringhe nello string table dove non ci sono , dove l'id nel resource.h è un int che punta alla stringa della stringtable e che posso caricare con loadstring ,dopo aver compilato le risorse.


    grazie

  9. #29
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Moderazione

    A parte il fatto che del problema con risorse, LoadString e altro ancora ne hai già parlato spesso in tantissime altre discussioni, che per il momento tralascio, non puoi continuare a risollevare la discussione con un monologo. Se hai delle prove da fare, falle, e se incontri una difficoltà e poni un problema, attendi risposte, o riunisci in un unico messaggio tutte le prove effettuate, senza risollevare di continuo la discussione.

    Qui siamo in un forum, non in un blog.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.