Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unterprogramm mit Stringgrid (https://www.delphipraxis.net/75307-unterprogramm-mit-stringgrid.html)

Klaus01 28. Aug 2006 19:59

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:
  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];
Dein Code ist im Einstieg der while Schleife falsch.
Du solltest ja die ganze Tabelle durchsuchen und dazu mußt
du prüfen ob du in der letzten Zeile bist.

Delphi-Quellcode:
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;
Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:56 Uhr.
Seite 2 von 2     12   

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