Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    67

    [Delphi] ottenere il contenuto della riga selezionata

    Nuovo giro,nuova corsa e nuova domanda
    mi trovo alle prese con una DBGrid collegata ad un datasurce che a sua volta è collegata ad una ADOQuery....fin qui nulla di strano,ma vorrei che una volta eseguita la query e visualizzato il risultato sulla tabella,cliccando su una riga dei risultati,i valori di quella riga venissero copiati in una label,esempio tabella con 3 colonne:
    col1 col2 col3
    A B C

    clikko sulla riga e la label dovrebbe contenere ABC
    ho provato con label.caption:=DBGrid.Fields[0].AsString+DBGrid.Fields[1].AsString+DBGrid.Fields[2].AsString;
    ma come risultato ho sempre e solo la prima riga cioè se nella mia tabella avessi
    col1 col2 col3
    A B C
    d e f
    1 2 3

    se clikko sulla terza riga ottengo sempre ABC...
    qualcuno sa aiutarmi?

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Invece di lavorare sul controllo TDBGrid, quindi sulla griglia, estrai i dati dal record corrente del DataSet che è correlato alla griglia tramite il TDataSource, cioè agisci direttamente sul componente TADOQuery.

    Quando navighi nella griglia, non fai altro che spostare il record corrente su quel DataSet; accedendo ai campi (es. tramite il metodo FieldByName del DataSet) otterrai i valori per il record attualmente selezionato.

    Se l'obiettivo è visualizzare i dati su un'etichetta di testo, comunque, puoi sfruttare direttamente il controllo TDBText e associarlo al DataSource/DataField corrispondente: il DataSource è lo stesso della griglia, mentre il DataField è il campo da visualizzare.

    Facendo così, senza scrivere una riga di codice, avrai i dati che ti servono mostrati a video e aggiornati a ogni cambiamento di selezione del record corrente sulla griglia.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    67
    problema risolto con label.caption:=DataSource.DataSet.FieldByName('Nom e').AsString

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da slyfer89
    problema risolto con label.caption:=DataSource.DataSet.FieldByName('Nom e').AsString
    Avresti risolto ancora prima con un normale TDBText, che svolge esattamente lo stesso compito ma non richiede di scrivere codice aggiuntivo (da verificare e testare, e mantenere aggiornato).
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    67
    no xk mi serviva visualizzare tutti i risultati in una tabella e poi con il dbclick selezionare cosa visualizzare nella label

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da slyfer89
    poi con il dbclick selezionare cosa visualizzare nella label
    La questione del "doppio clic" l'avevi omessa.
    Meglio dire sempre tutto...

    Ciao!
    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.