Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zahl im 2D_array speichern >>" ist kein Gleitkommawert<& (https://www.delphipraxis.net/125340-zahl-im-2d_array-speichern-ist-kein-gleitkommawert.html)

zuflucht 4. Dez 2008 11:42


Zahl im 2D_array speichern >>" ist kein Gleitkomm
 
hi ich schreibe ein programm mit dem man mit einer matrix rechnen kann.
ich möchte nun die eigegebenen zahlen in einem 2Dimensionalen Array of real speichern.
bekomme jedoch die fehlermedlung, dass > " < kein gültiger Gleitkommawert sei.
woran kann es liegen, und wie behebe ich dies?

Hier noch die wichtigen stellen aus meinem Programmcode:


Delphi-Quellcode:
var
  Form1: TForm1;
  a, b, c, d, e, hoch: integer;
  Matrix1: array [5..50] of Tedit;
  Matrix2: array [51..100] of Tedit;
  ElementM1: array [1..99, 1..99] of real;
  ElementM2: array [1..99, 1..99] of real;
  m1, m2: Integer;
  Zeile, Spalte: integer;


procedure TForm1.Button1Click(Sender: TObject);
var i,j :integer;
begin       // "Matrix1Layout" erstellen
  a:=strtoint (edit1.text);
  b:=strtoint (edit2.text);
  hoch:=20;
  m1:=5;
  for j:=1 to b do
   begin
   e:= 20;
   for i:=1 to a do
    begin
    Matrix1[m1]:=TEdit.Create(Panel1);
    Matrix1[m1].parent:=Panel1;
    Matrix1[m1].top:=hoch;
    Matrix1[m1].left:=e;
    Matrix1[m1].height:=20;
    Matrix1[m1].width:=20;
    Matrix1[m1].Visible:=true;
    Matrix1[m1].enabled:=true;
    Matrix1[m1].text:='';
    Matrix1[m1].show;
    e:=e+20;
    m1:=m1+1;
    end;
   hoch:=hoch+15;
   end;
end;


procedure TForm1.Button3Click(Sender: TObject);
var i:integer; // "Save"
begin         // Aus MAtrix1Layout Zahlen in ElementM1[Zeile, Spalte] speichern
  Zeile:=1;
  Spalte:=1;
  for i:=5 to m1 do
  begin
  ElementM1[Zeile, Spalte]:=StrToFloat (Matrix1[i].text);
  Zeile:=Zeile+1;
  Spalte:=Spalte+1;
  end;
end;

im vorraus schon mal nen ganz dickes danke.

Fussball-Robby 4. Dez 2008 11:45

Re: Zahl im 2D_array speichern >>" ist kein Gleit
 
Zitat:

Zitat von zuflucht
Delphi-Quellcode:
    Matrix1[m1].text:='';
//[..]
  ElementM1[Zeile, Spalte]:=StrToFloat (Matrix1[i].text);

Ist es eventuell möglich, dass, nachdem Matrix[m1].Text geleert wurde, dort nichts reingeschrieben wird? Denn später versuchst du den Inhalt davon in eine Zahl umzuwandeln, aber wenn nichts drin steht, gibts natürlich ne Exception.

zuflucht 4. Dez 2008 11:46

Re: Zahl im 2D_array speichern >>" ist kein Gleit
 
doch ich habe in jeden edit was reingeschrieben, also eine zahl ^^

Fussball-Robby 4. Dez 2008 12:17

Re: Zahl im 2D_array speichern >>" ist kein Gleit
 
Dann Debug mal (F7 statt F9 zum starten), dann siehst du ja, wo der Fehler auftritt.

zuflucht 4. Dez 2008 12:48

Re: Zahl im 2D_array speichern >>" ist kein Gleit
 
er gibt mir an folgender steller ein pfeil, aber keine meldung dazu:

Delphi-Quellcode:
program Pmatrix;

uses
  Forms,
  Umatrix in 'Umatrix.pas' {Form1};

{$R *.res}

->begin
   Application.Initialize;
   Application.CreateForm(TForm1, Form1);
   Application.Run;
  end.
sollte er was geändert haben, hat es nichts geholfen da der fehler immer noch besteht.

zuflucht 6. Dez 2008 19:46

Re: Zahl im 2D_array speichern >>" ist kein Gleit
 
ich habe den Fehler gefunden:

durch die zeile
Delphi-Quellcode:
m1:=m1+1;
wird m1 hochgesezt obwohl kein weiterer Edit erstellt wird. dadurch wird bei:
Delphi-Quellcode:
for i:=5 to m1 do
  begin
ein Edit abgefragt, das es gar nicht gibt, somit auch keinen wert haben kann.


ich habe also einfach am ende der procedure ein m1:=m1-1; eingefügt welches das problem behebt :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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