//try type TStringGridEx = class(TStringGrid) published procedure ColumnMoved(FromIndex, ToIndex: Longint); override; end;{ TStringGridEx } procedure TStringGridEx.ColumnMoved(FromIndex, ToIndex: Integer); begin inherited; end;procedure TForm1.StringGrid1ColumnMoved(Sender: TObject; FromIndex, ToIndex: Integer); const {$J+}vChanging: Boolean = False;{$J-} begin if vChanging then Exit; if 1 in [FromIndex, ToIndex] then begin vChanging := True; TStringGridEx(Sender).ColumnMoved(ToIndex, FromIndex); vChanging := False; end; end;
to: zswangII(伴水清清)(职业清洁工)不是移动列,而是移动行时不改变列1的顺序
//看看这样行不?~~ procedure TForm1.StringGrid1RowMoved(Sender: TObject; FromIndex, ToIndex: Integer); var I: Integer; begin for I := 1 to StringGrid1.RowCount - 1 do StringGrid1.Cells[1, I] := IntToStr(I); end;
type
TStringGridEx = class(TStringGrid)
published
procedure ColumnMoved(FromIndex, ToIndex: Longint); override;
end;{ TStringGridEx }
procedure TStringGridEx.ColumnMoved(FromIndex, ToIndex: Integer);
begin
inherited;
end;procedure TForm1.StringGrid1ColumnMoved(Sender: TObject; FromIndex,
ToIndex: Integer);
const
{$J+}vChanging: Boolean = False;{$J-}
begin
if vChanging then Exit;
if 1 in [FromIndex, ToIndex] then begin
vChanging := True;
TStringGridEx(Sender).ColumnMoved(ToIndex, FromIndex);
vChanging := False;
end;
end;
procedure TForm1.StringGrid1RowMoved(Sender: TObject; FromIndex,
ToIndex: Integer);
var
I: Integer;
begin
for I := 1 to StringGrid1.RowCount - 1 do
StringGrid1.Cells[1, I] := IntToStr(I);
end;