Avatar billede claus_w Nybegynder
03. maj 2001 - 22:46 Der er 6 kommentarer og
3 løsninger

klokkeslæt - klokkeslæt

Dette spørgsmål består af to dele - 30 point til hver.

1.
Jeg har 2 x TDBEdit som indeholder udtræk fra en paradox database. I databasen er datatypen defineret som Time. Dvs. at så snart jeg skriver noget forkert ind her kommer den med besked om værdien ikke er \"valid time\".
Hvordan undgår jeg at der bliver skrevet noget ind her som ikke er et klokkeslæt? kan jeg definere en mask el.?

2.
I et tredje felt ønsker jeg tiden mellem disse to tidpunkter vist.
Med mySQL plejer jeg bare at lave en TO_DAYS() eller unixtime() for derefter at trække SlutTid fra StartTid... hvordan gør jeg det her?

(Tid = StartTid - SlutTid)

Det skal lige siges at jeg er helt ny til Delphi :(

På forhånd tak.
Avatar billede ziron Nybegynder
03. maj 2001 - 22:49 #1
med dit spg. 2 så prøv at kigge på;:

http://www.eksperten.dk/spm/69058

/ZIRON
Avatar billede claus_w Nybegynder
04. maj 2001 - 09:28 #2
Okey... så bruger jeg en af de funktioner på den side:

function Delta_Min(Time1,Time2:TDateTime):longint;
var
  dt : extended;
begin
  dt:=abs(24*60*(Time2-Time1));
  if (MaxLongint<dt) then Result:=MaxLongint else Result:=Trunc(dt);
end;

procedure TLogForm.StartTidChange(Sender: TObject);
begin
Tid.Text := Delta_min(StartTid.Text,SlutTid.Text);
end;

Men jeg får følgende fejl:
[Error] logbog.pas(102): Incompatible types: \'TDateTime\' and \'String\'
[Error] logbog.pas(102): Incompatible types: \'TDateTime\' and \'String\'[Fatal Error]
Project1.dpr(6): Could not compile used unit \'logbog.pas\'

Hvad gør jeg galt?
Avatar billede stone Forsker
04. maj 2001 - 10:34 #3
for at lave en \"mask\" for din tid, åbn din field editor i table1,ved at højre klikke på table1, marker din \"tid\" felt og gå til editmask.her kan du vælge nationale tidsinput.
nu vil det ikke være muligt at skrive andet end
klokkeslæt.
Avatar billede stone Forsker
04. maj 2001 - 19:29 #4
her er en metode hvor du kan beregne forskellen mellem 2 tidspunkter.

den her kode indsætter du i din Table1 \"onCalcFields\"

jeg har brugt 3 Tdbedit

procedure TForm1.MiniTable1CalcFields(DataSet: TDataSet);
begin
if
Minitable1StartTid.Value <>
Minitable1SlutTid.Value then
Minitable1Tid.Value :=
Minitable1StartTid.Value -
Minitable1SlutTid.Value;
Avatar billede claus_w Nybegynder
05. maj 2001 - 10:53 #5
så får jeg sådan en:
[Error] logbog.pas(102): Undeclared identifier: \'Value\'
Avatar billede claus_w Nybegynder
05. maj 2001 - 15:33 #6
Jeg har valgt at bruge en DateTimePicker i steddet men hvordan for jeg knyttet dem til databasen? med TDBEdit fandt den jo selv ud af at ligge den rigtige værdi i feltet.

Avatar billede claus_w Nybegynder
05. maj 2001 - 15:38 #7
Brugen af DateTimePicker løser jo begge mine spørgsmål så jeg laver et nyt spørgsmål til mit efterfølgende problem.

Men i skal have tak for hjælpen.
Avatar billede stone Forsker
05. maj 2001 - 15:56 #8
kommentar1:
eksemplet virker fint hos mig.
har du indsat det i oncalcfields?
kommentar 2:
du kan ikke connecte TDdateTimepicker til en database
det er ikke en database component.
på forskellige website kan du få gratis dataopmærksomme componenter
prøv http://www.torry.net
og http://vclcomponents.com/




Avatar billede stone Forsker
05. maj 2001 - 15:57 #9
ups der kom et \"D\" for meget i TDatetimepicker
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