03. oktober 2011 - 14:19Der er
10 kommentarer og 1 løsning
Fange forkerte tidspunkter i DBGrid
Jeg har et DBGrid hvor der i 2 felter skal indtastes et klokkeslet i formatet hh:nn Det virker sådan set godt nok, men -
Hvis man indtaster 24:00 eller xx:61 så smider den en EConvertError Hvordan fanger jeg nemmest den? Jeg synes jeg har prøvet alle muligheder, men lige lidt hjælper det.
Og ingen af dem giver reaktion. Det eneste jeg kan få til at reagere er FormKeyPress men det er ikke lige til at fange alligevel for det virker kun hvis det er Enter der bruges. Hvis man 'Tabber' ud af feltet så kaster det en exception.
Min FormKeyPress ser ud som følger:
procedure TfrmTransactions.FormKeyPress(Sender: TObject; var Key: Char); begin if Ord(Key) = 27 then Close; try if Ord(Key) = 13 then begin if grdTransactions.SelectedIndex < grdTransactions.FieldCount - 1 then grdTransactions.SelectedIndex := grdTransactions.SelectedIndex + 1 else begin grdTransactions.DataSource.DataSet.Next; grdTransactions.SelectedIndex := 0; end; Key := #0 end; except on E: Exception do begin showmessage('Fejl: ' + E.Message); Key := #0; end; end; end;
Jeg må tilstå at det umiddelbare resultat er at det ikke kan lade sig gøre. Jeg har derfor gjort det at jeg har lavet en anden form med 'rigtige' database controller på og så lavet det så jeg trykker Insert i formen med griddet og så får jeg mulighed for at tilføje en record. På den form har jeg så brugt et par controller fra DevExpress som virkelig kan håndtere datoer og klokkeslet. Der er også et grid med i den pakke, men den har jeg ikke haft tid til at sætte mig rigtigt ind i. Der skulle man vist nok kunne gøre det hele direkte. Men det må blive i version 2 af programmet.
Lige nu er brugerne tilfredse som det er og det er det vigtigste her og nu.
Da jeg ikke har fået noget svar fra jer, lukker jeg spørgsmålet.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.