Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Selbstprogrammierung eines Vokabeltrainers (https://www.delphipraxis.net/180545-selbstprogrammierung-eines-vokabeltrainers.html)

DeddyH 13. Jun 2014 13:20

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;

Soph6297 16. Jun 2014 20:22

AW: Selbstprogrammierung eines Vokabeltrainers
 
Ich hab erstmal ein Anfang gewagt...

Delphi-Quellcode:
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;
Dazu zwei Fragen...

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?

mkinzler 16. Jun 2014 20:52

AW: Selbstprogrammierung eines Vokabeltrainers
 
1) Copy() besitzt 3 Parameter
2) Zeigt eine Meldungsfenster an.

Soph6297 16. Jun 2014 20:57

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?

mkinzler 16. Jun 2014 21:03

AW: Selbstprogrammierung eines Vokabeltrainers
 
Zitat:

Zitat von Soph6297 (Beitrag 1262521)
1) Aber wie kann ich es anders schreiben, dass Delphi "nicht mehr rummotzt"...?

Den fehlenden Parameter ergänzen:
Delphi-Quellcode:
Frage:=Copy('Rheinbund;1806', 1, iPos-1);
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]
Da musst du den autor fragen.

Soph6297 16. Jun 2014 21:15

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:
Trennung(ListBox1.Items.Strings[Zufall], FJahr, Ereignis);
weist zu viele Parameter auf. Nämlich FJahr und Ereignis. Müssen die da wirklich rein?

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...

Sir Rufo 16. Jun 2014 22:03

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.

Delphi-Referenz durchsuchenVcl.Dialogs.ShowMessage
Delphi-Referenz durchsuchenSystem.Copy

Perlsau 16. Jun 2014 22:12

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: Grundkenntnisse aneignen, Basis-Wissen erlernen, Tutorials durcharbeiten ...

himitsu 16. Jun 2014 22:16

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:
Teil := Copy(S, Start, Anzahl);
Teil := Copy(S, Start {, Length(S) - Start + 1});
Und dann gibt es auch noch Delphi-Referenz durchsuchenLeftStr, Delphi-Referenz durchsuchenRightStr, Delphi-Referenz durchsuchenMidStr, Delphi-Referenz durchsuchenReverseString und einige Funktionen, mit 'nem "ähnlichen" Verhalten wie das Delphi-Referenz durchsuchenPos.

DeddyH 17. Jun 2014 07:20

AW: Selbstprogrammierung eines Vokabeltrainers
 
Alles schon vorgekaut :? Ein Mindestmaß an Eigeninitiative kann man allerdings erwarten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz