Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    137

    [Delphi 5] Disabilit. Modifica Righe Tabella

    Ciao,

    come potrei fare per impedire ad un utente di modificare le righe di una tabella paradox che hanno un campo a False?
    mi spiego meglio: ho una tabella paradox con tre campi ove uno di questi è boolean, questo mi dice se posso o meno modificare il valore degli altri campi.
    come posso realizzarlo?
    il campo boolean non è la chiave della tabella è solo un campettino normale.


  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Cosa intendi disabilitare, i controlli visuali (Data Control) di Delphi che utilizzi per modificare i restanti campi?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    137
    No,

    praticamente io utilizzo un bel DBGrid per visualizzare i dati della mia tabella (quindi uso un TTable per la tabella ed un DataSource collegato a questa, il DBGrid è collegato al Datasource) ed un oggetto Navigator per scorrerli. Ho notato che posso andare a modificare il contenuto delle celle del DBGrid sia col Navigator che col Mouse.
    quello che voglio è disabilitare la possibilità di alterare (modificare e cancellare), sia col Navigator che col Mouse, un record quando il valore del campo "Aggiornato", della tabella, è FALSE. quindi voglio che quei record siano tipo ReadOnly ma solo quelli mentre gli altri li voglio poter modificare e/o cancellare.


  4. #4
    Utente di HTML.it L'avatar di Kreator
    Registrato dal
    May 2002
    Messaggi
    278
    beh, da una prima occhiata ... se ho capito bene ... dovresti sicuramente agire sulla proprieta' ReadOnly del DBGrid ...

    Poi in secondo luogo devi lavorare sul DataSet della tabella e non sul DBGrid.

    Cmq sia nello stato iniziale la proprieta' ReadOnly del DBGrid deve essere settata su True (quindi non si puo' midificare niente)... quando navighi all'interno del DBGrid a runtime (con il DBNavigator o manualmente) praticamente stai cambiando in tempo reale il posizionamento del cursore sul DataSet della tabella di riferimento ... quindi quando sei posizionato sul record dove il tuo campo e' False devi settare la proprieta' ReadOnly=false del DBGrid e quindi fai le modifiche a RunTime sul DBGrid.

    Il tutti gli altri caso dove quel tuo campo e' in False la proprieta' ti viene sempre settata ReadOnly=true e quindi non puoi modificare NULLA.

    P.S.
    Per intenderci, (per quello che ne so) non esiste esattamente una proprieta' per abilitare la scrittura o disabilitarla su ogni record del DBGrid ... quindi la soluzione e' che ti devi fare una funzione apposita come quella che ti ho elencato sopra.

    Ciaoo

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    La soluzione più rapida è quella di intercettare gli eventi OnBeforeEdit sulla tabella e, se il valore corrente del campo booleano è disabilitato, chiamare Abort per inibire il passaggio alla modalità di modifica.

    In alternativa, è sempre possibile intercettare l'evento OnChange dei singoli campi (escluso il campo booleano di controllo) chiamando Abort se occorre impedire la loro modifica.

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

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

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    137
    OK,

    Grazie mille ALKA, funziona come volevo che funzionasse.



    Ancora grazie per l'aiuto. Non pensavo che esistesse il comando ABORT.

    a presto.

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