Alarm View를 수정하고 있는데요.
String Gird를 사용할 때 처음에 날짜가 바뀌면 전체쿼리를 하지만
중간에 알람이 새로 발생했을 때는 새로 발생한 알람만 쿼리해서
Grid의 가장 앞쪽에 Insert 하고자 합니다.
이럴때 새로운 알람을 쿼리하는 것은 문제가 없는데 기존의 Row를
남기고 앞에 새로운 알람 Row를 Insert 하는 방법을 모르겠네요.
이 때 사용할 수 있는 Method나 Property가 있나요?
있다면 알려주세요. 빠른 답변 부탁드려요.
비슷한 코드가 있어서 그냥 남깁니다.
(작자미상요)
<!--CodeS-->
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
StringGrid1: TStringGrid;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
type
TMyGrid = class( TStringGrid ); // Dummy Class
implementation
{$R *.DFM}
procedure InsertRowToStringGrid( Value : TStringGrid; Row : Integer );
var
Soo : TGridRect;
begin
Value.RowCount := Succ( Value.RowCount );
TMyGrid( Value ).MoveRow( Pred( Value.RowCount ), Row );
Soo.Left := 1;
Soo.Top := Row;
Soo.Right := 1;
Soo.Bottom := Row;
Value.Selection := Soo;
end;
procedure InsertColToStringGrid( Value : TStringGrid; Col : Integer );
var
Soo : TGridRect;
begin
Value.ColCount := Succ( Value.ColCount );
TMyGrid( Value ).MoveColumn( Pred( Value.ColCount ), Col );
Soo.Left := 1;
Soo.Top := Col;
Soo.Right := 1;
Soo.Bottom := Col;
Value.Selection := Soo;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
InsertRowToStringGrid( StringGrid1, 2 );
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TMyGrid(stringgrid1 ).deleterow(stringgrid1.Row);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
InsertColToStringGrid( StringGrid1, 4 );
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
TMyGrid(stringgrid1 ).DeleteColumn(stringgrid1.Col);
end;
end.
<!--CodeE-->