da un DbGrid leggo se il valore del campo DATA ha un valore,
nel DataModule evento After Scroll su SQLQuery , leggo il valore del record attivo
c'e' pero' il problema dell'uso dei tasti PgUp, PgDn , Ctrl Home, Ctrl End;
leggo il valore del record al momento della pressione del tasto
ma non quello del record di arrivo.
mi servirebbe una call back in modo che quando scatta OnAfterScroll potesse comunicare con il Form.
in pratica devo leggere il valore dopo la pressione dei tasti, ma non ho eventi che mi permnettano di farlo.
//cosi non ci sara' mai la certezza di leggere il record voluto
procedure Tfrm_InvioMail.grdEmailKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var sValore: string;
begin
inherited;
sValore := grdEmail.Datasource.Dataset.FieldByName('DATA').AsString;
btnInvia.Enabled := false;
if sValore = '' then btnInvia.Enabled := true;
end;
ho trovato un modo per farlo:
inserendo un TDBEdit ed attivando l'evento OnChange.
procedure Tfrm_InvioMail.EdDataChange(Sender: TObject);
begin
inherited;
BtnInvia.Enabled := false;
if EdData.Text = '' then BtnInvia.Enabled := true;
end;