![]() |
Maximum aus einer StringGrid Spalte berechnen
Guten Morgen,
ich bin auf der Suche nach einem (oder eher mehreren )Fehler(n) für die Berechnung eines Maximums aus einem Stringgrid. (Delphi 2005)
Delphi-Quellcode:
zweite Sache: wenn ich das "c" von const beliebig _also vom Nutzer des Programms- machen möchte muss ich das wie anstellen?
const c= 1000;
type Tleistung= array[1..c] of double; function Optimum(n:integer):double; var i:integer; max:double; leistung:Tleistung; begin max:=0; for i:=1 to n do begin leistung:= StrToFloat(StringGrid1.Cells[3,i]);{Stringgrid1.Cells wird als nicht deklearierter Bezeichner festgestellt} if leistung[i] > max then max:= leistung[i]; end; return max;{return und max wie beim StringGrid1.Cells} end; Danke Technikus |
Re: Maximum aus einer StringGrid Spalte berechnen
Zitat:
Delphi-Quellcode:
Dann weist du einem Array einen Fließkommawert zu, das kann nicht gut gehen.
type
TForm1 = class(TForm) [...] private //bzw. public function Optimum(n:´Integer): Double; [...] end; implementation function TForm1.Optimum(n: Integer): Double; Entweder füllst du das Array so:
Delphi-Quellcode:
oder, wenn du das Array gar nicht brauchst, sondern nur das Maximum, kannst du "leistung" gleich als Double deklarieren:
leistung[i] := StrToFloat(StringGrid1.Cells[3,i]);
Delphi-Quellcode:
leistung: Double;
begin max:=0; for i:=1 to n do begin leistung := StrToFloat(StringGrid1.Cells[3,i]); if leistung > max then max:= leistung; end; Zitat:
Delphi-Quellcode:
Result := max;
|
Re: Maximum aus einer StringGrid Spalte berechnen
Hallo K.,
ich habe unter private die Eintragung
Delphi-Quellcode:
gemacht.
function Optimum(n:Integer): Double;
Dann habe ich den code wie folgt geändert:
Delphi-Quellcode:
danke für die Hilfe
const c= 1000;
type Tleistung= array[1..c] of double; {Was ich hier ändern soll, habe ich aus deinem Text nicht verstanden} function TForm1.Optimum(n: integer): double; var i:integer; max:double; leistung:Tleistung; begin max:=0; for i:=1 to n do begin leistung:= StrToFloat(StringGrid1.Cells[3,i]); {Fehlermeldung: E2010 Inkompatible Typen: 'Tleistung' und 'Extended'} if leistung[i] > max then max:= leistung[i]; end; Result:= max; end; procedure TForm1.Button7_opt_APClick(Sender: TObject); var n:integer; begin Optimum(n: integer): double;{fkt.nicht, was ist daran so falsch?} end; Gruß Technikus |
Re: Maximum aus einer StringGrid Spalte berechnen
:gruebel: Hast du auch Khabarakhs gesammten Post gelesen? Er hat dir das doch eigentlich schon fast hingeschrieben, was du machen mußt. Zumindest der erste Fehler hätte sich durch genaues Lesen vermeiden lassen können. Du kannst einem Array of Double nicht einen Double-Wert zuweisen. Dafür müßtest du schon ein Element deines Arrays benutzen.
Und der zweite Fehler - sorry - spricht wirklich Bände. Evtl. solltest du nochmal diverse Anfängertutorials lesen. Zitat:
Delphi-Quellcode:
MaxWert := Optimum(500);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 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 by Thomas Breitkreuz