Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#39

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 17. Jun 2014, 20:27
Mein liebes Soph6297, dir fehlen offenbar die einfachsten Grundlagen der Delphi-Programmierung:

Wenn ich das allerdings in der procedure aufrufe, kommt die Fehlermeldung, dass ListBox1 undefiniert ist.
Das ist doch völlig normal, daß du von einer Procedure aus, die du nicht als Methode deines Formulars deklarierst, auch keinen Zugriff auf die Komponenten hast, die sich auf diesem Formular befinden. Deklariere die Procedure Trennung im Private-Abschnitt deines Interface-Abschnitts, drücke dann die Tastenkombination Strg-Shift-C und schreibe in den daraufhin erzeugten Procedure-Rumpf deine Implementation.
Delphi-Quellcode:
procedure TForm1.Trennung(text:String; var TAntwort,TFrage:String);
begin
end;
Packe ich es allerdings in den OnClick vom EreignisButton läuft das Programm, allerdings öffnet sich dann die ShowMessage von der procedure.
Ist doch klar: Hier stellt die Procedure eine Methode deiner Form-Klasse dar. Du siehst das an dem vorangestellten TForm1.

Delphi-Quellcode:
procedure TForm1.EreignisButtonClick(Sender: TObject);
var zufall:Integer;
     Ereignis:String;
begin
ListBox1.Items.LoadFromFile('TextEreignis.txt');
randomize;
zufall:=random(ListBox1.Items.Count);
ListBox1.Items.Strings[2];
Trennung(ListBox1.Items.Strings[Zufall], FJahr, Ereignis);
EreignisPanel.Caption:=Ereignis;
end;
Also im Endeffekt: Das Problem mit dem Maximum der ListBox besteht nicht mehr. Allerdings wird noch kein Ereignis im dafür vorgesehenen Panel angezeigt.
An dieser Stelle möchte ich dir noch einmal empfehlen, mindestens ein, besser mehrere Anfänger-Tutorials sorgfältig durchzuarbeiten. Wollte man dir deinen ganzen Kot Code korrigieren, käme das beinahe dem Schreiben eines Tutorials nahe, und dazu hab zumindest ich keine Lust. Du stocherst da wie wild in deinem Programmcode herum und hoffst, irgendwo ein Korn zu finden. So wird das nix. Da hilft auch kein Code-Korrigieren und -Liefern, denn offensichtlich begreifst du nicht wirklich, warum dies und jenes ein Fehler ist. Noch ein Hinweis: Formatiere deinen Code, arbeite zumindest mit Einrückungen, das kann doch sonst keiner lesen!
  Mit Zitat antworten Zitat