Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   komische Fehlermeldung, was bedeutet das? (https://www.delphipraxis.net/119960-komische-fehlermeldung-bedeutet-das.html)

Sh4dd4r 3. Sep 2008 19:23


komische Fehlermeldung, was bedeutet das?
 
Kann mir vielleicht jemand weiterhelfen, was das hier bedeutet?


Zitat:

[Warning] Unit1.pas(132): FOR-Loop variable 'i' may be undefined after loop
Was muss ich ändern, damits funktioniert? gibt bei mir ne Access Violation.

DeddyH 3. Sep 2008 19:24

Re: komische Fehlermeldung, was bedeutet das?
 
Du hast eine Schleifenvariable i definiert und greifst nach Ablauf der Schleife darauf zu.

mkinzler 3. Sep 2008 19:26

Re: komische Fehlermeldung, was bedeutet das?
 
Du scheinst ausserhalb der Schleife die Laufvariable zu verwenden. Wie sieht der Code aus? Ist i innerhalb der Grenzen?

Sh4dd4r 3. Sep 2008 20:48

Re: komische Fehlermeldung, was bedeutet das?
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var i,h:integer;
begin

Zufalls_Zahlen(Anzahl_Zufallszahlen);
WortWandel;

For i:=1 to Anzahl_Zufallszahlen do begin
  memo1.Lines.Add(IntToStr(Zufallszahlen[i]));
end;

For h:=1 to Anzahl_Zufallszahlen do begin
  memo1.lines.add(WList1.word[h]);
end;

end;
das ist der source code...

Meflin 3. Sep 2008 20:58

Re: komische Fehlermeldung, was bedeutet das?
 
Also 1. traue ich mich fast wetten, dass es for i := 0 to xxx - 1 heißen müsste, zweitens: Ist das der komplette Code? Irgendwo musst du doch i außerhalb der Schleife verwenden :gruebel:

mkinzler 3. Sep 2008 21:00

Re: komische Fehlermeldung, was bedeutet das?
 
Ausserdem ist der Wertebereich des Arrays nicht ersichtlich

zahor 3. Sep 2008 21:05

Re: komische Fehlermeldung, was bedeutet das?
 
und könntest du diese seltsamen funktionen, die ja offensichtlich aus irgendeiner drittunit stammen, mal erklären? was macht denn dieses wortwandel? v.a. weil es keine parameter hat.
aber helfen kann man dir nur, wenn du den kompletten code postest, oder zumindest die teile wo die arrays definiert werden, und falls sie dynamisch sind auch den teil wo ihnen eine dimension gegeben wird (der setlength-teil).

grenzgaenger 3. Sep 2008 21:06

Re: komische Fehlermeldung, was bedeutet das?
 
hab einfach keine lust auf: :glaskugel:

Sh4dd4r 3. Sep 2008 21:38

Re: komische Fehlermeldung, was bedeutet das?
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, Unit3;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Hauptmenue1: TMenuItem;
    Aufgaben1: TMenuItem;
    Highscores1: TMenuItem;
    Accountladen1: TMenuItem;
    N1: TMenuItem;
    Accountspeichern1: TMenuItem;
    N2: TMenuItem;
    ENDE1: TMenuItem;
    Wrterlisten1: TMenuItem;
    Zahllisten1: TMenuItem;
    sonstiges1: TMenuItem;
    N3: TMenuItem;
    sonstiges2: TMenuItem;
    Reihenfolge1: TMenuItem;
    Drucheinander1: TMenuItem;
    MarathonTest1: TMenuItem;
    Spielkarten1: TMenuItem;
    N4: TMenuItem;
    Einfhrung1: TMenuItem;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    Memo1: TMemo;
    procedure ENDE1Click(Sender: TObject);
    procedure Reihenfolge1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Reihenfolge;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Zufalls_Zahlen(Anzahl:integer);
    procedure Button1Click(Sender: TObject);
    procedure WortWandel;
  private
    wordlist1: TextFile;
    Anzahl_Zufallszahlen: integer;
    wie_viele_zeilen: integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Zufallszahlen:Array[1..250] of integer;

type
 wordlist = class
  private
   NumberOfWords: integer;
   word: array[1..100] of string;
end;

var WList1: wordlist;


implementation

{$R *.dfm}

procedure TForm1.ENDE1Click(Sender: TObject);
begin

  close;

end;

procedure TForm1.Reihenfolge1Click(Sender: TObject);
begin

  Unit3.OKBottomDlg1.ShowModal;
  Anzahl_Zufallszahlen:=StrToInt(Unit3.OKBottomDlg1.Edit1.text);

end;

procedure TForm1.Reihenfolge;
begin

//weitermachen


end;

procedure TForm1.Zufalls_Zahlen(Anzahl:integer);
Var i: integer;
begin
  randomize;
  for i:=1 to Anzahl_Zufallszahlen do begin
    Zufallszahlen[i]:=random(wie_viele_zeilen+1);
  end;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  WList1:= wordlist.Create;
  wie_viele_zeilen:=0;
  AssignFile(wordlist1,'wordlist1.txt');
  reset(wordlist1);

    while not EoF(wordlist1) do begin
      readln(wordlist1);
      inc(wie_viele_zeilen);
    end;
  CloseFile(wordlist1);
end;

procedure TForm1.WortWandel;
var zeile: string; i,h,a: integer;
begin
  WList1.NumberOfWords:=0;

// Textdatei wird lesbar gemacht

  AssignFile(wordlist1,'wordlist1.txt');
  reset(wordlist1);

  // Einlesen bestimmter Zeilen der Textdatei

    a:=1;

    for h:=1 to Anzahl_Zufallszahlen do begin
      for i:=1 to (Zufallszahlen[a]-1) do begin
        readln(wordlist1,zeile);
        WList1.word[i]:=zeile;
        inc(a);
      end;
    end;
    WList1.NumberOfWords:=a;
  CloseFile(wordlist1);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  WList1.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var i,h:integer;
begin

Zufalls_Zahlen(Anzahl_Zufallszahlen);
WortWandel;

For i:=1 to Anzahl_Zufallszahlen do begin
  memo1.Lines.Add(IntToStr(Zufallszahlen[i])); //--->>> hier is der FEHLER
end;

For h:=1 to Anzahl_Zufallszahlen do begin
  memo1.lines.add(WList1.word[h]);
end;

end;

end.
so, das ist der komplette code...

was das macht: ich bekomm ne liste von zufallszahlen, voneiner bestimmten angegebenen Anzahl die sich zwischen 1 und der anzahl der zeilen eines textdokuments befinden... anhand dieser zahlen wird eine zufällige zeile des textdokuments angewählt, das wort wird in meine eigene class gespiechert.

wortwandel sucht nach den zufallszahlen die wörter aus der textdatei...

hoffe ihr könnt mir helfen, is ziemlich viel code...

grenzgaenger 3. Sep 2008 21:42

Re: komische Fehlermeldung, was bedeutet das?
 
und in welcher zeile tritt der fehler denn auf? :glaskugel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Seite 1 von 3  1 23      

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