Hallo,
so viele Nachrichten... alles wegen Goto
Also "PRINT" und "GOTO" waren die ersten Befehle die ich gelernt hatte... zumindest auf dem C64
Aber erst mal Danke für die vielen Vorschläge. Ich hatte den Code vereinfacht. Der richtige Code behandelt 3 StringGrids, sprich nach dem ersten Doppel-FOR das gleiche noch 2x, deshalb ist ein EXIT nicht auf einfacher Weise möglich. Zu der "If Prüfung Then Goto ForEnd"... es ist eine Prüfung die 100% eintritt aber das weis Delphi ja nicht, deshalb wohl die Warnung.
Ich bin heute auf folgende Idee gekommen. Hier der richtige Code:
Delphi-Quellcode:
Procedure TForm1.CheckGridCell(DG : TmyGrid);
Var NCol,NRow,i : LongInt;
Begin
With DG Do
Begin
SelPaint := False;
For NCol := 0 to ColCount-1 Do
Begin
For NRow := 0 to RowCount-1 Do
Begin
i := (NCol*(RowCount)) + NRow;
If ACell = Dirlist[i].Name Then
Begin
Row := NRow;
Col := NCol;
If ShowStyle = ssFull Then
begin
if row < toprow then toprow := row
else if row > toprow+visiblerowcount-1 then toprow := row-visiblerowcount+1;
end;
SelPaint := True;
RePaint;
Exit;
End;
End;
End;
End;
End;
Ich rufe an den nötigen Stellen die Prozedur 3x auf.
Delphi-Quellcode:
CheckGridCell(Grid1);
CheckGridCell(Grid2);
CheckGridCell(Grid3);
Mit der Parameterübergabe hat der Inhalt der Prozedur auch weniger Zeilen und ein EXIT kann ich so einsetzen. Warnungen gibt's von Delphi so auch nicht mehr.
Auch Danke für den Tipp, zum einfügen von Delphi-Code.
Gruß
Michael