![]() |
Re: Unterprogramm mit Stringgrid
Was marabi meinte und ich auch falsch verstanden habe ist:
Im Unterprgramm die Zeile mit der MinGröße und MaxGröße ermitteln.
Delphi-Quellcode:
procedure MinMax(sg: TStringGrid; iCol: Integer; var iMin, iMax: Integer);
var i: Index; max,min: Integer; begin max:=0; min:=MaxInteger; for i:=sg.FixedRows to sg.RowCount -1 do begin if sg.cells[iCol,i] < min then begin min:=sg.cells[iCol,i] iMin:=i; end else if sg.cells[iCol,i] > max then begin max:=sg.cells[iCol,i]; iMax:=i; end; end; end; Im Hauptprogramm dann
Delphi-Quellcode:
Dein Code ist im Einstieg der while Schleife falsch.
MinMax(StringGrid1, 3, ZeileMin, ZeileMax);
Min_Name:=StringGrid1.cells[2,ZeileMin]; Min_Groesse:=StringGrid1.cells[3,ZeileMin]; Max_Name:=StringGrid1.cells[2,ZeileMax]; Max_Groesse:=StringGrid1.cells[3,ZeileMax]; Du solltest ja die ganze Tabelle durchsuchen und dazu mußt du prüfen ob du in der letzten Zeile bist.
Delphi-Quellcode:
Grüße
begin
x := sg.FixedRows; iGroesse:=StrToInt(sg.Cells[iCol,x]); iGroesse_min:=iGroesse; iGroesse_max:=iGroesse; while x <= sg.RowCount-1 do begin iGroesse :=StrToInt(sg.Cells[iCol,x]); if iGroesse >= iGroesse_max then begin iGroesse_max :=iGroesse; end; if iGroesse < iGroesse_min then begin iGroesse_min :=iGroesse; end; x :=x+1; end; end; Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 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