Avatar billede zrednaz Nybegynder
02. september 2005 - 15:41 Der er 8 kommentarer og
1 løsning

Hjælp lige med et hurtigt problem!

Hej derude. Jeg har netop fået datalogi i gymnasiet, og jeg er ved at lave mit første 'projektprogram'. Jeg er endnu ikke erfaren nok til at vide, hvad der er galt med denne kode, jeg har skrevet:

if
  Edit1.Text<>('annette') then
  ShowMessage('Beklager, du har angivet en forkert kode.')
else
  Form1.Visible:=False;
  Form2.ShowModal;

Det går altså her ud på, at jeg vil tage imod en adgangskode i Form1. Hvis den er forkert, kommer der en meddelelse frem. Hvis den er rigtig, skifter vinduet. Det virker også næsten, men når man taster koden forkert, så kommer Form2 frem alligevel. Hvad gør jeg galt? :D

anders
Avatar billede zrednaz Nybegynder
02. september 2005 - 15:57 #1
Måske skulle jeg også lige tilføje, at ovenstående er en OnClick-procedure for en knap, der står ved siden af Edit1-feltet. ;)
Avatar billede nielle Nybegynder
02. september 2005 - 16:32 #2
if Edit1.Text<>('annette') then
    ShowMessage('Beklager, du har angivet en forkert kode.')
else
begin
    Form1.Visible:=False;
    Form2.ShowModal;
end;
Avatar billede zrednaz Nybegynder
02. september 2005 - 17:39 #3
Takker...

Næste problem er, at når Form2 efterfølgende lukkes, så kører programmet stadig usynligt i baggrunden... Jeg er kommet uden om problemet ved at skrive

if
  Edit1.Text<>('annette') then
  ShowMessage('Beklager, du har angivet en forkert kode.')
else
begin
  Form1.Visible:=False;
  Form2.ShowModal;
  Form1.Close;
end;

... Men det må kunne gøres smartere? :)
Avatar billede nielle Nybegynder
02. september 2005 - 18:11 #4
Skal den ikke bare gøres synlig igen?

if Edit1.Text<>('annette') then
    ShowMessage('Beklager, du har angivet en forkert kode.')
else
begin
    Form1.Visible := False;
    Form2.ShowModal;
    Form1.Visible := True;
end;
Avatar billede zrednaz Nybegynder
02. september 2005 - 18:25 #5
Nah, Form1 ("angiv dit password"-vinduet, som kommer som det første, når programmet køres) skal bare lukkes HELT, når den rigtige kode er tastet.

Hvis man bruger

Form2.ShowModal;
Form1.Close;

Så forbliver Form1 i baggrunden. Hvis man sætter Form1.Close; først, så når Form2 aldrig at komme frem...

Btw husk at angive et svar, så jeg kan spendere mine point =)
Avatar billede nielle Nybegynder
02. september 2005 - 18:27 #6
Jamen hvis det er sådan det skal fungere så er Form1.Close; det rigtige. Faktisk kunne du jo spare lidt:

if Edit1.Text<>('annette') then
    ShowMessage('Beklager, du har angivet en forkert kode.')
else
begin
    Form1.Close;
    Form2.ShowModal;
end;
Avatar billede nielle Nybegynder
02. september 2005 - 18:28 #7
... og et svar :^)
Avatar billede zrednaz Nybegynder
02. september 2005 - 20:05 #8
Så kommer Form2 aldrig frem. Programmet lukkes, inden det når at ske.
Tak for den øvrige hjælp i hvert fald...
Avatar billede lsc Nybegynder
05. september 2005 - 10:16 #9
Du skal bare skrive:

if Edit1.Text <> 'annette' then begin
  ShowMessage('Beklager, du har angivet en forkert kode.');
  form1.close // Stop program
end
else
begin
  Form1.visible := false; // Skjul form1
  Form2.ShowModal
end;
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