Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: sergio - Febbraio 25, 2014, 12:15:58 am

Titolo: stringgrid come bloccare l'editing di 1 riga
Inserito 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 :-[
Titolo: Re:stringgrid come bloccare l'editing di 1 riga
Inserito da: nomorelogic - Febbraio 25, 2014, 12:41:13 pm
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
Titolo: Re:stringgrid come bloccare l'editing di 1 riga
Inserito da: sergio - Febbraio 25, 2014, 09:55:35 pm
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.
Titolo: Re:stringgrid come bloccare l'editing di 1 riga
Inserito da: nomorelogic - Febbraio 26, 2014, 10:03:05 am
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
Titolo: Re:stringgrid come bloccare l'editing di 1 riga
Inserito da: sergio - Febbraio 26, 2014, 07:19:00 pm
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