Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 1. und 2. Spalte eines Stringgrid auf "leer" überprüfen (https://www.delphipraxis.net/52635-1-und-2-spalte-eines-stringgrid-auf-leer-ueberpruefen.html)

Technikus 31. Aug 2005 18:17


1. und 2. Spalte eines Stringgrid auf "leer" überp
 
Hallo!
ich suche wiedermal Hilfe beim Basteln meiner Wertetabelle. (Delphi 2005 Prof.)
Ich möchte gern eine Fehlermeldung(Textmeldung als Label) ausgeben, wenn irgend eine (oder mehrere) Zelle der ersten oder zweiten Spalte(und nur dieser) nicht belegt sind. Einen Anfang habe ich gemacht, die Meldung kommt, aber auch, wenn die dritte Spalte leer ist und das ist meine Spalte für zu berechnende Werte. Und die geht ach nciht weg, wenn ich die Zellen belegt habe.
Was muss ich ändern, damit es funktioniert?

Weiterhin wollte wissen, wie ich die Meldung wieder weg bekomme, wenn alle Zellen der 1. und 2. Spalte belegt sind und ich auf den Button "Berechne" drücke.
Vielleicht kann mir jemand helfen.


Delphi-Quellcode:
...
procedure TForm1.Button4_Berechne_PClick(Sender: TObject);
var
 j,k,i, anzahl: integer;
  Spannung, Strom, Leistung: double;
  s,M: string;
  ok: boolean;
begin
anzahl:=StrToInt(Edit3_Eingabe_anzahl.Text);

 with StringGrid1 do
  begin
   if (Cells [1,j]='') and (Cells [2,k]='') then
     begin
     M:='Messreihe unvollständig!';
     Label1_Warnung.caption:=M;
     end
     else
    for i := FixedRows to anzahl do
   begin
...
Danke im Voraus
Technikus

marabu 31. Aug 2005 21:20

Re: 1. und 2. Spalte eines Stringgrid auf "leer" ü
 
Hallo Technikus,

mit dieser Methode deines Formulars sollte es dir gelingen eine Prüfung zu bauen:

Delphi-Quellcode:
function TCalcForm.IndexOfEmptyRow(iCol: integer): integer;
begin
  Result := Grid.FixedRows;
  while (Result < Grid.RowCount) and (Grid.Cells[iCol, Result] <> '') do
    Inc(Result);
  if Result = Grid.RowCount then
    Result := -1;
end;
Sie liefert für den Aufruf IndexOfEmptyRow(1) das Ergebnis -1, wenn alle Zellen der Spalte mit dem Index 1 gefüllt sind.

Grüße vom marabu


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