Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: sergio - Febbraio 25, 2014, 12:15:58 am
-
Salve a tutti, scusate , una richiesta che forse sembrera' banale , ma io non riesco ad arrivarne in fondo. Come si puo' bloccare l'editing solo di una riga di una Stringgrid ? Io ho in una stringgrid l'inserimento di campi da un database , quando la riga è completa si conferma e si passa alla successiva , ma vorrei poter bloccare la riga appena confermata , in modo che non si possa accidentalmente fare delle modifiche . Ogni suggerimento è molto gradito . Grazie in anticipo!! Sergio :-[
-
prova con l'evento OnBeforeEdit del dataset
esegui un test sulla riga corrente per verificare se è possibile entrare in edit, se no -> sollevi una eccezione
-
Scusa, ma non c'è un modo per interagire coni componenti cell o i row e bloccarli ? Ad esempio , se cella 8 diversa da ' ' allora non si può più modificare ! Grazie in anticipo ! Sergio.
-
ammesso che si possa fare non credo sia comunque sufficiente
mi spiego meglio:
il clientdataset e datasource rappresentano la sorgente dati mentre la TDbGrid, al pari di altri component tipo TDbEdit e così via, sono dei controlli per l'interazione con l'utente.
Spetta alla sorgente dati l'ultima parola sulla validazione di un dato: tu potresti avere N TDbControl sparsi in N TForm e tutti collegati allo stesso datasource, sarebbe un bel casino se ogni TDbControl dovesse implementare i criteri di validazione (senza contare che i dati si cambiano anche senza passare per i TDbControl).
Detto questo, come minimo, il controllo sul dataset/datasource ci deve essere.
Spostare la cosa sulla griglia agevola di molto la parte della programmazione e rende anche il programma migliore, però su questo posso solo consigliarti di cercare bene tra gli eventi :P
-
Ti ringrazio , effettivamente lavorare sulla Grid mi semplificava la vita , ma hai ragìone tu , per essere piu' certi e precisi , è meglio agire sui dati . Io lavoro con Mysql , per la gestione dei dati , vedrò come fare per un controllo sull'inserimento . magari un flag di controllo nella tabella :D! Grazie , ciao Sergio