Avatar billede bramsing Nybegynder
02. oktober 2003 - 15:54 Der er 11 kommentarer og
2 løsninger

if then and or if then and or if then else

Jeg har et program der skal undersøge 3 ting før den "lukker" folk ind i programmet...
Hvis de 3 ting ikke er som de skal være skal programmet udføre >>A<< Men er tingende som de skal være skal programmet udføre >>B<< noget i retning af:

begin
if noget('ok') then
if noget_andet('ok') then
noget_tredje('ok') then
>>B<< else
>>A<<
end;

Jeg kan kun få det til at virke hvis alle tingende er ('ok') Jeg har ikke helt styr på hvornår og hvordan man evt. kunne bruge "and" eller "or" ind i if-sætninger og om de i det hele taget skal bruges i denne sammensætning...

Nogen der har en "løsning" eller et hint til en løsning??

//'bramsing'
Avatar billede Slettet bruger
02. oktober 2003 - 15:57 #1
Du kan bruge:

if (noget('ok')) and (noget_andet('ok')) and (noget_tredje('ok')) then
begin
>>B<<
end;
else
begin
>>A<<
end;
Avatar billede bramsing Nybegynder
02. oktober 2003 - 15:58 #2
Kigger på det ;)
Avatar billede Slettet bruger
02. oktober 2003 - 16:03 #3
Du kan vist bare gøre sådan:

if noget('ok') and noget_andet('ok') and noget_tredje('ok') then :-)
Avatar billede bramsing Nybegynder
02. oktober 2003 - 16:09 #4
Kan ikke liiiiiiiiiige få det til at virke på den måde.... Men jeg kæmper lidt videre med det...
Avatar billede bramsing Nybegynder
02. oktober 2003 - 16:12 #5
[Error] Main.pas(197): Too many actual parameters
[Error] Main.pas(198): Operator not applicable to this operand type
[Error] Main.pas(199): Operator not applicable to this operand type
[Error] Main.pas(200): Incompatible types: 'String' and 'Boolean'
Avatar billede zerohero Nybegynder
02. oktober 2003 - 16:13 #6
Der er selvfolig forskellige maader at gore det paa:

Den besvaerlige og noget rodet maade:

if (Et eller andet) then
begin
  if (Et eller andet) then
  begin
    if (Et eller andet) then
    ...
    else
      Exit;
  end
  else
    Exit;
end
else
  Exit;

Den lidet mindre besvaerlige maade:

var
  B : Boolean;
begin
  B := False;

  if not (et eller andet) then
  B := True;

  if not (et eller andet) then
  B := True;

  if not (et eller andet) then
  B := True;
 
  if not B then
  ...
  else
    Exit;
 
end;

Den paenere og mere overskuelige maade:

if (Et eller andet) and (Et eller andet) and (Et eller andet) then
...
else
  Exit;

Alle tre maader virker korrekt... Det er vel bare en smags sag hvad man foler er bedst :-))

Held og Lykke
ZeroHero
Avatar billede Slettet bruger
02. oktober 2003 - 16:33 #7
bramsing -> Prøv at poste koden.
Avatar billede sjmaden Nybegynder
02. oktober 2003 - 18:48 #8
zerohero, dit andet svar vil resulterer i B = true blot sidste er true, duer ikke.
Bramsing, post noget kode, da det lyder på dine fejlmedelser som om du har lavet en bøf et sted i syntaxen
Avatar billede bramsing Nybegynder
02. oktober 2003 - 18:56 #9
Jeg er sluppet af med fejlmeddelserne nu... men, nu køre det bare ikke :'(
her er koden... Undskyld svar tiden, men jeg blev kaldt i møde...

procedure TForm1.ButtonLoginClick(Sender: TObject);
  VAR
    F : TInifile;
    r4 : string;
    I3,I6,I7:Integer;
begin
    F := TInifile.Create(extractfilepath(application.exename)+'\test.ini');
    r4:= F.ReadString('logon','time','');
    label31.Caption := RE1;
    label32.Caption := RE2;
    label33.Caption := RE3;
    I3:= strtoint(label31.Caption);
    I6:=Strtoint(label32.Caption);
    I7:=Strtoint(label33.Caption);
      if ReadRegKey= 'OK' then
        begin
          if ini1 = 'OK' then
          begin
          if r4 = (inttohex(I6,I6))+(inttohex(I3,I3))+(inttohex(I7,I7))
            then
              begin
              panel2.BringToFront;
              end else
        begin
        panelnag.BringToFront;
        timernag.Enabled := TRUE;
        end;
      end;
  end;
end;
Avatar billede bramsing Nybegynder
02. oktober 2003 - 19:08 #10
Koden virker kun i det omfang at de første 2 "kontrol" er korrekt og den sidste "kontrol" enten er korrekt eller at den melder "fejl".... så køre programmet som det skal... ellers sker der intet når man trykker på knappen....
Avatar billede bramsing Nybegynder
02. oktober 2003 - 19:18 #11
Jeg ved ikke liiiiige hvad jeg fik gjort til at starte med... men hejhej's måde har jeg fået til at virke... den som zerohero også kommer med til sidst... SÅ, hvis hejhej lægger et svar ind så vil jeg dele point'ne op til jer to, hvis det er ok med jer :)
Avatar billede Slettet bruger
02. oktober 2003 - 19:25 #12
:-)
Avatar billede bramsing Nybegynder
02. oktober 2003 - 19:51 #13
Takker for hjælpen :)
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