delphi6のアプリ実行中に、DBGrid表の上(枠外)に突然2行ほどハミ出し
表示されます。内容はDBGrid表のものとダブっています。
表全体を検索中に起きるようです。
アプリは実行できるのですが、ハミ出し表示は消えません。
これを避ける方法はないでしょうか。
>DBGrid表の上(枠外)に突然2行ほどハミ出し表示されます。
これは、今まで表示されていなくて、環境が変わったり、ソースコードを
変更してから出たのですか?
それとも、単純にDBGridを使ったテストプログラムでも発生しますか?
>表全体を検索中に起きるようです。
この部分は、具体的には、ソースコードではどのような記述をしていますか?
他に・・・
OnDrawColumnCellイベントで何か処理をしていますか?
Delphi6は最新のUpdateは適用していますか?
>>DBGrid表の上(枠外)に突然2行ほどハミ出し表示されます。
>これは、今まで表示されていなくて、環境が変わったり、ソースコードを
>変更してから出たのですか?
>それとも、単純にDBGridを使ったテストプログラムでも発生しますか?
WindowsXPで開発した時は問題なかったのですが、Windows7に移してから
気づきました。ソースコードは変更していません。
>>表全体を検索中に起きるようです。
>この部分は、具体的には、ソースコードではどのような記述をしています
>か?
function BRChosa(BTO: Integer): Integer;
var
N: Integer;
TNB: Integer;
begin
for N := 1 to 10 do
begin
BRT[N,1] := 0;
end;
with DataModule1.DBISAMQuery2 do
begin
TNB := Fields[0].AsInteger;
N := 0;
while not EOF do
begin
if Fields[6].AsInteger = BTO then
begin
N := N + 1;
BRT[N,1] := Fields[0].AsInteger; // TNB
BRT[N,2] := Fields[2].AsInteger; // TES
BRT[N,3] := Fields[3].AsInteger; // COL
BRT[N,4] := Fields[4].AsInteger; // PST
end;
Next;
end;
Result := N;
First;
MoveBy(TNB - 1); // カーソル戻し
end;
end;
>OnDrawColumnCellイベントで何か処理をしていますか?
していません。
>Delphi6は最新のUpdateは適用していますか?
していません。
for N := 1 to 10 do
begin
BRT[N,1] := 0;
end;
with DataModule1.DBISAMQuery2 do
begin
TNB := Fields[0].AsInteger;
N := 0;
while not EOF do
begin
if Fields[6].AsInteger = BTO then
begin
N := N + 1;
BRT[N,1] := Fields[0].AsInteger; // TNB
BRT[N,2] := Fields[2].AsInteger; // TES
BRT[N,3] := Fields[3].AsInteger; // COL
BRT[N,4] := Fields[4].AsInteger; // PST
end;
Next;
end;
Result := N;
First;
MoveBy(TNB - 1); // カーソル戻し
end;
end;
>>Delphi6は最新のUpdateは適用していますか?
>
>していません。
どのDBGridでも起こるようでしたら、
最新のUpdateを適用してみたり、Windows7のディスプレイドライバが最新か
確認したり、はいかがですか?
>どのDBGridでも起こるようでしたら、
>最新のUpdateを適用してみたり
どのDBGridでも起こるようです。
delphi6のUpdate2とGeneral Update2は適用しましたが、Update3はzip
フォルダで、中を見ても.exeファイルがなく、どう適用するのかわかり
ません。
>delphi6のUpdate2とGeneral Update2は適用しましたが、Update3はzip
>フォルダで、中を見ても.exeファイルがなく、どう適用するのかわかり
>ません。
そのUpdate3というのが、
http://www.codegear.com/jp/downloads/regusers/delphi
にある、
Delphi 6 Runtime Library Update 3
のことでしたら、リンク先に
>詳細は、こちらのファイルをご覧ください。
と説明がありますので、それをご確認ください。
>そのUpdate3というのが、
>http://www.codegear.com/jp/downloads/regusers/delphi
>にある、
>Delphi 6 Runtime Library Update 3
>のことでしたら、リンク先に
>>詳細は、こちらのファイルをご覧ください。
>と説明がありますので、それをご確認ください。
Update3も適用しましたが、変わりはありませんでした。
>Windows7のディスプレイドライバが最新か
>確認したり、はいかがですか?
未熟者で、どのサイトで確認・更新すべきか分かりません。
下記のソースコードで、*印の2行を追加したところ
解決しました。
お世話になりました。
function BRChosa(BTO: Integer): Integer;
var
N: Integer;
TNB: Integer;
begin
for N := 1 to 10 do
begin
BRT[N,1] := 0;
end;
with DataModule1.DBISAMQuery2 do
begin
* Form2.DBGrid2.Datasource := nil;
TNB := Fields[0].AsInteger;
N := 0;
while not EOF do
begin
if Fields[6].AsInteger = BTO then
begin
N := N + 1;
BRT[N,1] := Fields[0].AsInteger; // TNB
BRT[N,2] := Fields[2].AsInteger; // TES
BRT[N,3] := Fields[3].AsInteger; // COL
BRT[N,4] := Fields[4].AsInteger; // PST
end;
Next;
end;
Result := N;
First;
MoveBy(TNB - 1); // カーソル戻し
* Form2.DBGrid2.Datasource := DataModule1.DataSource2;
end;
end;
ツイート | ![]() |