两个简单问题!(50分)

  • 主题发起人 主题发起人 doud
  • 开始时间 开始时间
D

doud

Unregistered / Unconfirmed
GUEST, unregistred user!
1.
function TForm1.SetList(bds: string) : TStringList;
var
List: TStringList;
tt: String;
p,i: Integer;
begin
list:=Tstringlist.Create;
p:=1;
for i:=1 to Length(Trim(bds)) do begin
tt:=Copy(bds,i,Length(Trim(bds)));
if bds=',' then begin
List.Add(Copy(bds,p,i-p));
p:=i+1;
end;
end;
List.Add(Copy(bds,p,Length(Trim(bds))+1-p));
Result:=list;
end;

?List.Free; // 在什么地方写?该怎么写?
2.
一个DBGrid与Query相联,怎样设置使在DBGrid中可edit,但按下光标时不增加

谢谢!
 
1.在这个函数外面,用完后释放。也就是在调用该函数的过程中用一个TStringList变量保存返回结果的指针。
2.“按下光标时不增加”什么意思?
 
按“下光标”时不增加
 
你是说不滚动?那可以在DBGrid的OnKeyDown里写——
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_DOWN then Key := 0;
end;
 
不是不滚动,是类似
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_DOWN) and (Query1.State=dsInsert) then Key := 0;
end;

DBGrid中当光标在最后一条时,按VK_DOWN时增加了一条空记录
希望DBGrid禁止Insert.
 
试试在Query的BeforeInsert里——
procedure TForm1.Query1BeforeInsert(DataSet: TDataSet);
begin
if Query1.Eof then Abort;
end;
 
我用了Filter;没想到Query1.Eof能起作用!谢谢!
 
后退
顶部