Avatar billede uthsen Nybegynder
28. juni 2004 - 13:49 Der er 10 kommentarer og
1 løsning

Vis et flag på bestemt dato

Jeg skal have vist et flag, når dag og måned passer med dags dato
Dette Flag vises når Table1Fdato.text passer præcis på DateTOStr(Date)
Altså virker her:
begin
    if Table1Fdato.text  = DateToStr(Date)  then
      Flag.Visible :=true

  else
      Flag.Visible :=false ;
end;

Nu er det bare sådan, jeg kun vil have dag og måned til at passe med dags dato og ikke år

Når jeg skriver:
begin
    if Table1Fdato.text  = DateToStr(Date)+ FormatDateTime('dd-mm', Date)  then
      Flag.Visible :=true

  else
      Flag.Visible :=false ;
end;

Virker det ikke!
Hvad skal jeg skrive?
Table1Fdato.text ser således ud f.eks: 12-06-1965
Avatar billede jonat Nybegynder
28. juni 2004 - 14:04 #1
Prøv med:
if FormatDateTime('dd-mm', Date) = FormatDateTime('dd-mm', StrToDate(Table1Fdato.text)) then
      Flag.Visible :=true

  else
      Flag.Visible :=false ;
end;
Avatar billede pellelil Nybegynder
28. juni 2004 - 14:05 #2
Det først jeg bemærker er at det ser ud til at du har datoen til at stå i din database som et streng felt. Jeg villle nok i stedet vælge en TDataTime og kun bruge en streng når jeg vil præsentere datoen for en bruger.

Når du har en dato (TDateTime) og du vil splitte denne op i Dag, Månde og År (for at kunne sammenligne 2 mdr og 2 årstal) så bruger du blot (såvidt jeg lige husker) DecodeDate(Dato, Dag, Md, Aar);
Avatar billede uthsen Nybegynder
28. juni 2004 - 14:33 #3
Virker ikke, men kan kompileres.
Avatar billede jonat Nybegynder
28. juni 2004 - 14:34 #4
Det virkede fint ved mig.......

// Jonat.
Avatar billede uthsen Nybegynder
28. juni 2004 - 14:35 #5
Til Pellelil
Så skal jeg jo til at lave noget nyt!
Kan det ikkelade sig gøre med det jeg har?
Avatar billede uthsen Nybegynder
28. juni 2004 - 14:49 #6
Til jonat
Det har jeg også fundet ud af det gør hos mig!
Undskyld mange gange!!
Vær sød at lægge et nyt svar, så du kan få point
Avatar billede jonat Nybegynder
28. juni 2004 - 14:50 #7
Det er helt ok :-D

// Jonat.
Avatar billede pellelil Nybegynder
28. juni 2004 - 14:51 #8
Du skriver jo selv "DateToStr(Date)" hvilket tyder på at du har din dato som en TDateTime og i såfald kan du godt bruge "DecodeDate" (prøv evt. at kigge i Delphi's hjælp til DecodeDate").

Problemet med at bruge strenge er at du for begge de 2 datoer (som du vil sammenligne) er nødt til at vide hvordan de er opbygget og så skal du fra disse "plukke" de tegn du ønsker at sammenligne. Evt. noget a'la:
if (Copy(DatoStr1, 1, 2) + Copy(DatoStr1, 4,2)) = (Copy(DatoStr2, 1, 2) + Copy(DatoStr2, 4,2))

Hvis du i stedet bruger TDateTime er du fri for at slås med forskellige måder at formatere en dato på (kunne de tænkes at engelsk-sprogede bruger skal bruge dit program så "falder det til jorden" hvis du forventer at datoen er formatret på en bestemt måde)
Avatar billede uthsen Nybegynder
28. juni 2004 - 14:59 #9
Tak :)
Avatar billede uthsen Nybegynder
28. juni 2004 - 15:00 #10
Også en tak til Pellelil
Jeg anvender svaret fra jonat
Avatar billede pellelil Nybegynder
28. juni 2004 - 15:08 #11
Helt i orden !!!
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