Avatar billede stone Forsker
27. maj 2003 - 22:04 Der er 14 løsninger

dato = image

Jeg har en form med et billede hvor der er 24 huller i.
hver hul kommer der et billede over som repræsentere datoen.

hvordan kan jeg undgå at at lågen ikke kan åbnes hvis dato ikke er lig = dd.
Avatar billede doc404 Novice
27. maj 2003 - 22:23 #1
var
  d,m,y : integer;
...
  DecodeDate(Date,y,m,d);
  if d <> hulnummer then
    slemme dreng
  else
    åben lågen

God julekalender kodning ;-)
Avatar billede stone Forsker
27. maj 2003 - 23:50 #2
fejlmeddelse i
DecodeDate(Date,y,m,d);

types of actual and formal var parameters must be identical
Avatar billede doc404 Novice
27. maj 2003 - 23:57 #3
d,m,y : word;

sorry ;-)
Avatar billede stone Forsker
28. maj 2003 - 01:34 #4
how... man kan ikke gi et billede's componentnavn en integer værdi, ellers kan jeg ikke få dit eksempel til at virke, ellers vil lågen aldrig åbnes.

billedet's componentnavn kan ikke ændres til f.eks 1
Avatar billede doc404 Novice
28. maj 2003 - 09:44 #5
Nu ved jeg ikke hvordan du har kodet resten, så min kode var bare et eksempel på hvordan du bruger DecodeDate.

Men du kan f.eks. benytte Tag property? Men post lidt kode..
Avatar billede stone Forsker
28. maj 2003 - 13:22 #6
har tidligere prøvet at bruge tag og sat dato = tag, den videre kode er ikke skrevet for else, og den er ikke noget problem, problemet ligger i at når dato er = tag nr. bliver else ikke afviklet.
Avatar billede athlon-pascal Juniormester
28. maj 2003 - 20:32 #7
procedure TForm1.LaageClick(Sender: TObject);
var
  D, M, Y: Word;
  Hulnummer: Integer;
begin
  Hulnummer := (Sender as TImage).Tag;
  DecodeDate(Date, Y, M, D);
  if (D = Hulnummer) and (M = 12 {Det er vel en julekalender? En "sommerkalender" med 24 dage er vist ikke normal ;-) }) then
  begin
    (Sender as TImage).Visible := false; //Blot et eksempel...
  end
  else
    ShowMessage('Niks pille! Du må vente ...');
end;
Avatar billede stone Forsker
29. maj 2003 - 06:10 #8
hej athlon-pascal:

nu bliver else udført takker. ydermere en smart feature at lågen ikke kan åbnes i den 11 måned.
Jeg laver lige et spørgsmål på 30 point som tildeles dig
Avatar billede athlon-pascal Juniormester
29. maj 2003 - 08:40 #9
Men husk at lågerne altid kan åbnes ... man skal bare ændre computerens tid!

Måske ønsker du at man, hvis man ikke har tid til at åbne en låge en dag, kan åbne den nogle dage efter?
Her kan en låge åbnes på den dag der er sat i tag og resten af december:

procedure TForm1.LaageClick(Sender: TObject);
var
  D, M, Y: Word;
  Hulnummer: Integer;
begin
  Hulnummer := (Sender as TImage).Tag;
  DecodeDate(Date, Y, M, D);
  if (D >= Hulnummer) and (M = 12 {Det er vel en julekalender? En "sommerkalender" med 24 dage er vist ikke normal ;-) }) then
  begin
    (Sender as TImage).Visible := false; //Blot et eksempel...
  end
  else
    ShowMessage('Niks pille! Du må vente ...');
end;
Avatar billede stone Forsker
29. maj 2003 - 09:02 #10
der vil også være taget højde for at pc tid kan ændres ved at bruge "hardbreak"
fra et component Registdays. Her vil datoen blive logget ved installationen.
Avatar billede athlon-pascal Juniormester
29. maj 2003 - 09:11 #11
Hvis computeren som julekalenderen skal bruges fra altid er på internettet, så kan du jo hente datoen fra en tidsserver ...
Avatar billede stone Forsker
29. maj 2003 - 11:28 #12
jo..men man kan ikke gå ud fra at at alle har adgang 24 timer.

man kan også lave en intern tidskontrol, som bliver sat ved installation, og så kører videre derfra. Tror jeg ikke vil være svært at lave.
Avatar billede athlon-pascal Juniormester
29. maj 2003 - 12:10 #13
Kan man forvente at brugerens computer er tændt 24/7..?
Avatar billede athlon-pascal Juniormester
29. maj 2003 - 12:11 #14
Du har det samme problem som dem der laver shareware der kun virker i X dage efter installationen ... Jeg kender ikke noget der virker!
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