16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:dBASEの削除関連をまとめて"
この発言は #01237 高田 浩 さんのdBASEの削除関連をまとめて に対するコメントです
#1237 高田 浩 さん
訂正です。
実行例と同じものを作成し「削除マーク付き表示モード」にして
xRecall 或いは xRecallAll を実行すると DBGrid のスクロール
やマウスをクリックしてもフォーカスが移動出来ない様になりま
す。理由は EnableControls と DisableControls を正しく行っ
ていないせいです。
xRecallとxRecallAllの実装部を以下の様に書き換えて使ってくだ
さい。
{RECALL}
procedure xRecall;
var
curProp:curProps;
begin with Alias do begin
UpdateCursorPos;
DisableControls;
try
Check(DbiGetCursorProps(Handle,curProp));
if curProp.bDeletedOn then begin
if xDeleted then begin
Check(DbiUndeleteRecord(Handle));
ShowMessage('1 レコード 復元されました');
end;
end else
ShowMessage('削除マーク付きレコードの表示モードではありません
');
refresh;
finally
EnableControls;
end;
end;end;
{RECALL ALL}
procedure xRecallAll;
var
curProp:curProps;
Cnt:double;
begin with Alias do begin
UpdateCursorPos;
DisableControls;
try
Check(DbiGetCursorProps(Handle,curProp));
if curProp.bDeletedOn then begin
first;
Cnt:=0;
while not Eof do begin
if xDeleted then begin
Check(DbiUndeleteRecord(Handle));
Cnt:=Cnt+1;
end;
next;
end;
ShowMessage(FloatToStr(Cnt)+'レコード 復元されました');
first;
refresh;
end else
ShowMessage('削除マーク付きレコードの表示モードではありません
');
finally
EnableControls;
end;
end;end;
追伸:指摘下さった米谷さん、ありがとうございます。
_/_/dBASE3-4形式_/_/VdB7&Delphi4pro_/_/KFE06073_/_/高田浩_/_/
- FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 01/04/02 -
Original document by 高田 浩 氏 ID:(KFE06073)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|