Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    7

    [delphi] Identificare Un oggetto che genera un evento

    Ciao a Tutti , sono nuovo in questo forum.

    Devo risolvere un piccolo problema.
    Sto creando una applicazione in delphi7, in breve devo generare delle tabelle con delle Combobox.
    Le tabelle le genero usando degli array di combobox nel runtime , successivamente le inizzializzo con i vari parametri e contenuto.
    Le combobox le uso solo come liste di selezione, ogni volta che cambio la selezione devo generare un evento che compirà determinate azioni.
    Fin qui nulla di particolare se non che non riesco a trovare il sistema di associare alla combob un parametro che mi identifichi quale oggetto viene modificato.
    Qualcuno può spiegarmi come si fà?

    Grazie saluti.
    Paolo.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Sono anni che non uso più Delphi, ma se non ricordo male quando viene generato un evento il parametro Sender viene inizializzato con un puntatore all'oggetto che l'ha generato.

    Dovresti scrivere una procedura del tipo:

    codice:
    procedure GestoreEvento(Sender: TObject)
    begin
        ...
    end
    e sceglierla come gestore dell'evento OnChange per tutte le combobox. All'interno della procedura puoi usare Sender per identificare la combo che l'ha generato.

    Vedi anche questo: http://delphi.about.com/od/objectpascalide/a/sender.htm
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    7
    Ciao Grazie del suggerimento.

    La procedura "procedure GestoreEvento(Sender: TObject)" la avevo scritta ma non riuscivo a trovare il sistema per estrarre un parametro che mi dicesse quale combo era stata cliccata.

    Dalla pagina che mi hai indicato leggendo ho tirato furi una soluzione che non sarà elegante ma funziona.

    procedure GestoreEvento(Sender: TObject)
    var ind:integer;

    begin
    for ind:=1 to 32 do

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    7
    Ciao Grazie del suggerimento.

    La procedura "procedure GestoreEvento(Sender: TObject)" la avevo scritta ma non riuscivo a trovare il sistema per estrarre un parametro che mi dicesse quale combo era stata cliccata.

    Dalla pagina che mi hai indicato leggendo ho tirato furi una soluzione che non sarà elegante ma funziona.

    procedure GestoreEvento(Sender: TObject);
    var ind:integer;

    begin
    for ind:=1 to 32 do // 32 elementi
    if cbox[ind] = sender then // ho trovato l'oggetto cbox è il mio array
    end;

    Ciao Grazie.

    Paolo

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Uhm ma tu hai necessità di sapere l'indice? Perchè Sender E' l'oggetto che stai cercando, non hai bisogno di cercarlo nell'array.
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    7
    Si in effetti mi serve anche l'indice che identifica l'oggetto che ha generato l'evento oltre al contenuto.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Ah ok allora basta.

    [Delirio: potresti creare una nuova classe ereditando tutto dalla combobox e aggiungendo un campo "indice" che contiene l'indice di ogni combobox e usare questo controllo. Sinceramente non so quanto ti convenga, però potrebbe valer la pena provare]
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    7
    Si in effetti ci avevo pensato ma non sono riuscito a farlo, sarebbe sicuramente un sistema più elegante.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Uhm ripeto sono anni che non uso delphi e ricordo solo vagamente la sintassi, ma credo che sia una cosa del tipo:

    codice:
    type MyCombo = class(TComboBox)
    public
        ID : integer;
    end;
    Credo che sia così...
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    7
    Ok grazie ci proverò appena finite le vacanze.

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.