Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB6] Classe per Gestire Eventi Form

    Ciao avrei bisogno di creare una classe che sia in grado di gestire gli eventi della form e degli oggetti inessa contenuti.

    Mi spiego :

    Vorrei gestire

    GotFocus e LostFocus, degli oggetti

    Load ed Unload della form

    Poi vado in autonomia.
    Mi serve perche devo intercettare l' evento got e lost focus di una textBox, per modificarne delle proprietä.

    Non sono ancora ferratto sugli eventi nelle classi.

    QUalcuno vuole essere cosi' gentile da illuminarmi?

    Merci.

  2. #2
    Se vuoi che la tua classe intercetti gli eventi di una form o dei controlli in esso contenuti, direi che devi applicare il subclassing.
    Questa tecnica consiste nello scrivere una Window Procedure personalizzata in grado di intercettare i messaggi che il S.O. invia alle Window e di processarli prima ancora che questi vengano gestiti da VB.
    Spiegarlo in due parole non è proprio possibile, se pensi
    che ti possa interessare, ti posto del codice.

    Ciao
    Simo

  3. #3
    si mi serve perchü devo 'personalizzare' gli eventi della form, ovvero nel form load vorrei lanciare dei raiseEvent di un' altra classe e cosa simili.

    Posta pure e grazie mille.

  4. #4
    Ok !
    Dato che hai parlato di evento Load, comincio col dirti che,
    gli eventi Load e Initialize dei Form sono eventi "fittizi".
    Vale a dire che non corrispondo a messaggi invati dal S.O.
    ma vengono generati dall'applicazione VB.
    Se ricorri al subclassing potrai intercettare, dall'esterno
    del form, solamente quegli eventi notificati da Windows:
    Ad esempio, il primo nella vita di un form, è l'evento PAINT.

    Tanto per chiarirti con cosa avrai a che fare:
    Ogni finestra (ogni form o controllo che espone la propr.hwnd)
    ha una sua Window Procedure predefinita.
    Questa è una funzione di calback alla quale il S.O. invia determinati argomenti per notificare alla finestra che un dato evento che si è verificato nel sistema o su di essa.
    Ad esempio, quando sposti una finestra, Windows le invia un messaggio WM_MOVE, poi un WM_PAINT.
    Il compito della Window Procedure è quello di intercettare questi messaggi e comportarsi di conseguenza.

    In VB, contrariamente a C++, non è possibile definire la propria Window Procedure se non ricorrendo alle API.
    Così, è il compilatore del VB che si occupa di crearne una
    (limitando anche il numero di eventi gestibili).

    Quello che dovrai fare, sarà scrivere una Window Procedure personalizzata che sia identica, per numero e tipo di argomenti, a quella predefinita. Da questa potrai intercettare i messaggi di Windows prima della Window Procedure predefinita.

    Se mi scrivi il tuo indirizzo eMail, ti mando il mio tutorial per posta...è abbastanza lunghettino.

    Ciao
    Simo

  5. #5
    scusa ma ho avuto il PC fuori uso e leggo ora.
    Sei stato chiarissimo.

    La mia necessità è quella di imparare a gestire questi eventi WN_ ... per poter modificare gli eventi degli oggetti quali

    Form_load ...

    TextBox_gotFocus

    LostFocus

    Lavorare con le API nel Paint per modificare textBox e ComboBox ... etc etc ...

    Direi che ci siamo se hai un esempio dove magari gestisci anche degli eventi con il subclassing, poi dovrei riuscire ad andare in autonomia.

    Puoi mandarmi il tutto :

    raffaeu@libero.it (Max 2,5 Mb)

    rgarofalo@globuscosmos.ch (spazio unlimited - lavoro)

    La seconda la preferisco.

    Grazie.


  6. #6
    cme già detto milioni di volte se volete trattare i problemi in privato scrivetevi in privato
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

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 © 2026 vBulletin Solutions, Inc. All rights reserved.