zufall:=random(ListBox1.Items.Count);
Wenn ich das allerdings in der procedure aufrufe, kommt die Fehlermeldung, dass ListBox1 undefiniert ist.
Delphi-Quellcode:
procedure Trennung(text:String; var TAntwort,TFrage:String);
const
Frage_Antwort='Rheinbund;1806';
Trenner=';';
var Frage, Antwort:String;
iPos,zufall:integer;
begin
ListBox1.Items.LoadFromFile('TextEreignis.txt');
randomize;
zufall:=random(ListBox1.Items.Count);
end;
iPos:=Pos(';','Rheinbund;1806');
if iPos > 0 then
begin
Frage:=Copy('Rheinbund;1806',0, iPos+1);
Antwort:=Copy('Rheinbund;1806',0, iPos-1);
ShowMessage('Hier Nachricht eingeben');
end;
end;
Packe ich es allerdings in den OnClick vom EreignisButton läuft das Programm, allerdings öffnet sich dann die ShowMessage von der procedure.
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;
Zitat:
Wozu ist das ListBox1.Items.Strings[2] ?
Du liest da den 3. Wert aus, machst damit aber nichts. (wird nirgendwo zugewiesen)
Damit wollte ich (leider vergeblich) versuchen, dass die ListBox nicht an ihr Maximum stößt... Allerdings läuft das Programm jetzt, wo ich Zufall deklariert habe. (Hatte ich irgendwie gelöscht, die zeile....)
Also im Endeffekt: Das Problem mit dem Maximum der ListBox besteht nicht mehr. Allerdings wird noch kein Ereignis im dafür vorgesehenen Panel angezeigt.