![]() |
AW: Selbstprogrammierung eines Vokabeltrainers
Deine Prozedur Trennung macht aber zuviel, sie sollte wirklich nur einen übergebenen String-Parameter in Frage und Antwort aufteilen.
Delphi-Quellcode:
procedure Trennen(const Eingabe: string; out Frage, Antwort: string);
begin (* Hier nun Eingabe auftrennen und Frage und Antwort zuweisen *) end; |
AW: Selbstprogrammierung eines Vokabeltrainers
Ich hab erstmal ein Anfang gewagt...
Delphi-Quellcode:
Dazu zwei Fragen...
procedure Trennung(text:String);
const Frage_Antwort='Rheinbund;1806'; Trenner=';'; var Frage, Antwort:String; iPos:integer; begin iPos:=Pos(';','Rheinbund;1806'); if iPos > 0 then begin Frage:=Copy('Rheinbund;1806', iPos+1); Antwort:=Copy('Rheinbund;1806', iPos-1); ShowMessage('Hier Nachricht eingeben'); end; end; 1)Delphi zeigt mir an, dass es zu wenig wirkliche Parameter gibt - was kann ich dagegen tun? 2)Wozu genau ist die ShowMessage da/welchen Zweck erfüllt sie? |
AW: Selbstprogrammierung eines Vokabeltrainers
1) Copy() besitzt 3 Parameter
2) Zeigt eine Meldungsfenster an. |
AW: Selbstprogrammierung eines Vokabeltrainers
1) Aber wie kann ich es anders schreiben, dass Delphi "nicht mehr rummotzt"...?
Ich hab als Bsp gefunden: "s := 'Dies ist ein Test'; COPY(s, 14, 4); ergibt: 'Test'" Demnach fehlt bei mir ein Parameter, aber welches? Bzw. was sollen die Zahlen darstellen? 2) Ja, das weiß ich, aber welchen Zweck erfüllt das Meldungsfenster im Zusammenhang mit vorher geschriebenen? Was wird dem Benutzer damit gesagt/soll damit gesagt werden? |
AW: Selbstprogrammierung eines Vokabeltrainers
Zitat:
Delphi-Quellcode:
2) Ja, das weiß ich, aber welchen Zweck erfüllt das Meldungsfenster im Zusammenhang mit vorher geschriebenen? Was wird dem Benutzer damit gesagt/soll damit gesagt werden?[/QUOTE]
Frage:=Copy('Rheinbund;1806', 1, iPos-1);
Da musst du den autor fragen. |
AW: Selbstprogrammierung eines Vokabeltrainers
Ok danke, dann funktioniert das mit den Parametern soweit! (:
Nun ergeben sich aber zwei weitere "Probleme". 1) Die Zeile
Delphi-Quellcode:
weist zu viele Parameter auf. Nämlich FJahr und Ereignis. Müssen die da wirklich rein?
Trennung(ListBox1.Items.Strings[Zufall], FJahr, Ereignis);
2) Wenn ich, zur Probe, FJahr und Ereignis lösche und das Programm starte und den "Neues Ereignis" Button klicke kommt eine Fehlermeldung von Delphi, dass der Listenindex das Maximum übersteigt. Kann ich das irgendwo eingrenzen, so dass es im Limit bleibt? Desweiteren bleibt die Frage mit der ShowMessage offen... |
AW: Selbstprogrammierung eines Vokabeltrainers
Ohne dir zu nahe treten zu wollen, aber du solltest dich dringend mit den Grundlagen von Delphi und auch mit der Benutzung der Online-Hilfe vertraut machen.
Das liest sich wie als ob du das Licht einschalten möchtest und überall drückst, obwohl du nicht weisst, was ein Schalter ist, du aber gehört hast, dass man da wohl was drücken muss. ![]() ![]() |
AW: Selbstprogrammierung eines Vokabeltrainers
1. In deinem Quelltext oben verfügt die Methode Trennung nur über einen einzigen Parameter. Daran solltest du dich halten.
2. Wenn du ein Array[1..2] hast und du rufst ein Item daraus ab, dessen Index kleiner 1 oder dessen Index größer 2 ist, erzeugt dies einen Fehler, denn es existiert nur der Index 1 und der Index 2. Genauso ist das z.B. bei Stringlisten: Wenn du 15 Items darin hast (0..14] und du rufst z.B: das Item mit dem Index 15 auf, das gar nicht existiert, erzeugst du denselben Fehler: Listenindex übersteigt das Maximum. 3. Kannst du ein wenig Englisch? Ja? Dann weißt du sicher, was show und was message auf deutsch heißen: zeige Nachricht. Und genau das macht die Procedure: Sie zeigt die Nachricht an, die im Parameter übergeben wird. Dringende Empfehlung: ![]() ![]() ![]() |
AW: Selbstprogrammierung eines Vokabeltrainers
Copy besitzt in aktuelleren Delphis 3 oder 2 Parameter.
Bei 2 Parametern entspricht das dann "Kopiere Alles ab hier, bis zum Ende".
Delphi-Quellcode:
Und dann gibt es auch noch
Teil := Copy(S, Start, Anzahl);
Teil := Copy(S, Start {, Length(S) - Start + 1}); ![]() ![]() ![]() ![]() ![]() |
AW: Selbstprogrammierung eines Vokabeltrainers
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 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