Avatar billede vuf-vuf Nybegynder
03. oktober 2005 - 13:01 Der er 13 kommentarer

Tidsfelter på en form der uafbrudt medfører fejl

Hej

Jeg har en paradox-tabel med 124 felter af typen time.
Det er tidsskemaer som skal kunne oprettes og tilrettes af brugere.
Jeg har derfor lavet en form i delphi med dbedit felter der er kædet sammen med hvert enkelt felt i tabellen.
Men hver eneste gang jeg prøver at rette en værdi kommer der hele tiden en econverterror og applikaionen går ned?
Jeg har prøvet at indsætte noget errorhandling på felternes onchange men det er ligesom om jeg aldrig når dertil!
Hvad gør jeg?
Avatar billede vallemanden Nybegynder
03. oktober 2005 - 13:26 #1
hviken time er det ? 00:00:00 eller har du dato med?
Avatar billede vuf-vuf Nybegynder
03. oktober 2005 - 13:39 #2
Det er formatet 00:00:00 uden dato
Avatar billede vallemanden Nybegynder
03. oktober 2005 - 14:14 #3
kan jeg se lidt kode?
Avatar billede vuf-vuf Nybegynder
03. oktober 2005 - 14:36 #4
I den enkleste form er der jo ingen kode andet end det der oprettes som standard ved at med laver en form men et dbedit felt.
Tabellen er valgt via ttable hvor der er angivet databasenavn og tabelnavn samt en tdatasource der peger på datasættet.
Fejlen opstår så snart jeg anvender et enkelt dbedit felt hvor jeg angiver datasource og datafield.
Men jeg har prøvet feks. at indsætte følgende kode på onchange på det første dbedit felt:

var
  TempTime: TTime;
begin
  try TempTime:=strtotime(DBEdit1.text)
  except
  on E: EConvertError do
  begin
    showmessage('Der er opstået en fejl ved indtastningen');
    dbedit1.text:='00:00:00';
  end;
end;
Avatar billede stone Forsker
03. oktober 2005 - 14:36 #5
hmm mon ikke du skulle definere dit tidsformat i editmask i din table...bare en tanke
Avatar billede vuf-vuf Nybegynder
03. oktober 2005 - 15:16 #6
Hvordan sætter jeg editmask? Det er delphi 5 professional jeg arbejder i og der kan jeg ikke se en editmask property i object inspector?
Avatar billede stone Forsker
03. oktober 2005 - 15:45 #7
i Ttable marker' et tidsfelt så vil du kunne se en editmask... i object inspector
Avatar billede vuf-vuf Nybegynder
03. oktober 2005 - 17:46 #8
Ok nu har jeg indlagt følgende editmask:

!90:00:00;1;_

Det har hjulpet på det. Men programmet brager stadig ned hvis de indtaster et ugyldigt tidspunkt! Hvordan stopper jeg det?
Avatar billede stone Forsker
03. oktober 2005 - 18:10 #9
du kunne bruge denne funktion i din onvalidate - er onvalidate time ok gemmes tiden ellers cancel.

http://www.swissdelphicenter.ch/en/showcode.php?id=637
Avatar billede vuf-vuf Nybegynder
03. oktober 2005 - 20:12 #10
Jeg har prøvet at indlægge funktionen under onvalidate (ligesom jeg har prøvet at indlægge min egen kode jeg nævnte tidligere).
Men jeg får stadig samme fejlmeddelelse om en econverterror. Det ser stadig ud til at den slet ikke anvender koden under onvalidate?
Avatar billede stone Forsker
03. oktober 2005 - 20:23 #11
hmm har du prøvet at smide koden i DbEdit.OnChange

er dine fields sat til "date/time" i databasen
Avatar billede vuf-vuf Nybegynder
03. oktober 2005 - 20:52 #12
Jeps jeg har prøvet at sætte koden ind i onchange.
Felttypen i databasen er T=Time dvs. hh:mm:ss ligesom jeg har angivet i editmask.
Avatar billede vallemanden Nybegynder
28. august 2006 - 12:23 #13
på tide at lukke ?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester