Avatar billede gf Nybegynder
24. juni 2003 - 22:17 Der er 11 kommentarer og
2 løsninger

Hvorfor virker dette ikke

Hej jeg har fundet denne programstump på nettet. Og har implementeret det i mit eget program, men programmet stopper ikke når udløbsdatoen er overskredet. Nogen der kan forklare hvorfor.

unit Unit1;

interface

uses
Windows, SysUtils, Classes, Forms, Dialogs;

type
TForm1 = class(TForm)
  procedure FormShow(Sender: TObject);

private
  { Private declarations }
public
  { Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}     

procedure TForm1.FormShow(Sender: TObject);
var
AAr, Maaned, Dag : Integer;
begin
Aar  := 2001;
Maaned := 12;
Dag  := 1;
if (Date >= EncodeDate(AAr, Maaned, Dag)) then
    begin
      ShowMessage('Programmet lukkes.');
      Close;
    end;
end;

end.



Mvh
Avatar billede cms Nybegynder
24. juni 2003 - 22:24 #1
Du skal ikke bruge Close men Application.Terminate
Jeg tror desuden du skal skrive den i FormCreate.
Avatar billede hermandsen Juniormester
24. juni 2003 - 22:25 #2
Hvis din ShowMessage kommer frem, så prøv med Application.Terminate; i stedet...

Ellers kan du lave funktionene i initialize-sektionen, og så bruge Halt; den dræber alt!! :)

//hermandsen
Avatar billede hermandsen Juniormester
24. juni 2003 - 22:27 #3
Det hedder selvfølgelig initialization, ikke initialize...

Uha, jeg har ikke Delphi'et længe!! :/
Avatar billede cms Nybegynder
24. juni 2003 - 22:30 #4
Også 1 svar
Avatar billede gf Nybegynder
24. juni 2003 - 22:31 #5
Hej

Min Showmessage kommer ikke frem

Mvh Gf
Avatar billede kustoden Nybegynder
24. juni 2003 - 22:36 #6
Du er sikker på, at datoen på din computer passer?
Jeg har lige prøvet med en masse datoformater, og den stopper hver gang.

Du har vel ikke glemt at sætte OnShow-event på formen til din funktion?
Avatar billede hermandsen Juniormester
24. juni 2003 - 22:36 #7
Prøv lige:

unit Unit1;

interface

uses
Windows, SysUtils, Classes, Forms, Dialogs;

type
TForm1 = class(TForm)
  procedure FormShow(Sender: TObject);

private
  { Private declarations }
public
  { Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}   

procedure TForm1.FormShow(Sender: TObject);
begin
  ShowMessage('Programmet er startet!!');
end;

initialization

if Date >= EncodeDate(2001, 12, 1) then
begin
  ShowMessage('Programmet lukkes.');
  Halt;
end;

end.
Avatar billede kustoden Nybegynder
24. juni 2003 - 22:40 #8
Nej da ikke Halt. Det er så grim en måde at stoppe på. Det bliver slet ikke ryddet op.

Formens Close() skulle gøre det (og gør det)
Avatar billede gf Nybegynder
24. juni 2003 - 22:42 #9
Hej

Hermandsen og cms får 15 hver for jeres gode svar. Det hjalp dat koden kom i form create.

Mvh GF
Avatar billede kustoden Nybegynder
24. juni 2003 - 22:47 #10
Jeg under gerne Hermandsen og gf pointene, men føler alligevel trang til, for at sikre en faglig korrekt afslutning, at understrege, at det er ligegyldigt, om det, ligger på FormShow eller FormCreate. Det virker ikke begge tilfælde.
Avatar billede kustoden Nybegynder
24. juni 2003 - 22:47 #11
Rettelse, det virker i begge tilfælde... :-)
Avatar billede gf Nybegynder
24. juni 2003 - 22:49 #12
har i fået point?
Avatar billede cms Nybegynder
27. juli 2003 - 17:56 #13
Hov - jeg er lige vendt tilbage fra ferie. Har jeg fået forkerte points? Så må I sige til :)

Kustoden:
Jeg har lige testet - du har ret (i hvertfald mere end jeg har)
Helt præcist: "Close" virker i FormShow, men ikke i FormCreate
"Application.Terminate" virker i begge :-)

For sjov testede jeg også gf's oprindelige kode - den virker sørme hos mig.. Skørt
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