![]() |
2 Deklarationen?
Hallo,
ich weiß leider nicht, ob dies hier der richtige Bereich ist - sorry. Aber nun zu meiner Frage. Ich benuz Delphi 6 und hab grad erst angefangen. Ich bin nun grad dabei ein Quiz zu erstellen. Oberhalb habe ich die Variable: var ant: String; ant steht für Antwort Unterhalb dann die Antwort: ant := 'Hund'; Wie ist es jetzt möglich, dass auch noch Katze gelten zu lassen? Also das Hund und Katze richtig sind. Bislang wär ja nur die richtige Antwort Hund. |
Re: 2 Deklarationen?
Wenn ich dich richtig verstehe, wäre das Beste ein dynamisches Array:
Delphi-Quellcode:
Zu diesem Thema findest du auch hier genug Hilfe, brauchst einfach mal suchen.
var
ant: array of String; i: Integer; begin SetLength(ant,2); ant[0] := 'Hund'; ant[1] := 'Katze'; for i := 1 to Length(ant) //Antwort mit ant[i-1] vergleichen end; Greetz alcaeus |
Re: 2 Deklarationen?
Erste Moeglichkeit: Du koenntest ein Trennzeichen einfuehren (etwa den senkrechten Strich, |, also das Pipe-Symbol) und den String entsprechend zerlegen (oder mit Pos() durchsuchen):
Delphi-Quellcode:
Zweite und vermutlich uebersichtlichere Moeglichkeit: TObjectList verwenden und die erlaubten Antworten da reinstopfen, oder alternativ ein Array verwenden.
StringMitRichtigenAntworten:='Hund|Katze|Maus';
if Pos(GegebeneAntwort, StringMitRichtigenAntworten)>0 then begin // richtige Antwort end else begin // falsche Antwort end; |
Re: 2 Deklarationen?
Hai Frankie,
Zitat:
Delphi-Quellcode:
Jetzt musst Du dir nur noch eine Funktionschreiben welche die Antwort mit diesen beiden Einträgen vergleicht und, wenn einer davon richtig ist True zurückliefert.
var
antwort : String; begin antwott := 'hund#katze'; // Das Zeichen # wird wohl kaum in einer Antwort vorkommen. end; Als Stichwörter für die Funktion: Pos und Copy. Versuche mal wie weit Du kommst. Bei problemen -> Fragen ;-) |
Re: 2 Deklarationen?
Oh ich glaub ihr habt das jetzt ein wenig falsch verstanden (oder ich :-D ).
Also ich habe 2 Var. erstellt: frage1: String; ant1: String; So nun hab ich die deklariert: frage1: 'Wie heiße ich?'; ant1: 'Sascha'; Unten fragt er das nun einfach so ab:
Delphi-Quellcode:
Demnach müsste ich ja schon oben bei der Deklaration (ant1) eine 2. Antwortmöglichkeit einbauen. Welche allerdings nicht funktioniert - also auch nicht mit diesen Sonderzeichen (ist ja klar). Wisst ihr was ich meine?
eingabe:=InputBOX('Quiz',frage1,'Deine Antwort..?');
If (eingabe=ant1) Then SHOWMESSAGE('Wow!!') else SHOWMESSAGE('Buh!!') end; |
Re: 2 Deklarationen?
Also wenn du einen String mit allen Antworten nimmst, dann mach es lieber so:
Delphi-Quellcode:
denn bei den anderen Vorschlägen
StringMitRichtigenAntworten:='|Hund|Katze|Maus|';
if Pos('|' + AnsiStrLowerCase(Trim(GegebeneAntwort)) + '|', StringMitRichtigenAntworten) > 0 then ... {richtig} {also für "|" ist wie schon erwähnt jedes andere nicht in einer Antwort vorkommende Zeichen möglich}
Delphi-Quellcode:
ist auch sowas wie "und" oder sogar nur "a" also Antwort richtig.
StringMitRichtigenAntworten:='Hund|Katze|Maus';
if Pos(GegebeneAntwort, StringMitRichtigenAntworten) > 0 then ... {richtig} Obwohl es so bestimmt noch besser ist, denn auf die Groß und kleinschreibung kommt es doch besimmt nicht an...
Delphi-Quellcode:
StringMitRichtigenAntworten:='|Hund|Katze|Maus|';
if Pos('|' + AnsiLowerCase(Trim(GegebeneAntwort)) + '|', AnsiLowerCase(StringMitRichtigenAntworten)) > 0 then ... {richtig} {also für "|" ist wie schon erwähnt jedes andere nicht in einer Antwort vorkommende Zeichen möglich} |
Re: 2 Deklarationen?
Danke.
Aber es gibt wirklich keine andere Lösung für meinen Weg? Bei Javascript gibts doch auch 'or' und sowas - warum denn nicht bei Delphi? :-D |
Re: 2 Deklarationen?
Zitat:
Delphi-Quellcode:
var
ant1 : String; ant2 : String; begin ant1 := 'blubb'; ant2 := 'meow'; eingabe:=InputBOX('Quiz',frage1,'Deine Antwort..?'); If (eingabe=ant1) or (eingabe=ant2) Then begin SHOWMESSAGE('Wow!!') end else begin SHOWMESSAGE('Buh!!') end; end; |
Re: 2 Deklarationen?
es gibt or ^^
|
Re: 2 Deklarationen?
Funktioniert aber nich bei der Deklaration
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz