何時もお世話になります
D6Pro、XP、BDEでデータベース作成中です。
フォームの上に、DBGridを1つとEditを10個貼り付け(Edit8からEdit18まで)、DBGRIDは適切にQueryと関連付け、表示しています。
セルをクリックした時に、Edit8へセルの内容をコピーし、次にセルを移動してクリックしたときにEdit9へこの移動先の内容がコピーされるような動作を期待し、以下のコードを作成しました。
コードを実行すると以下の結果になってしまいます。
1、1回目でEdit9にも値がコピーされてしまう(1回目のクリックでは、Edit8のみへのコピーを期待)
2、2回目のクリックでは期待どうりの結果が得られた
コードを見ると、確かにコードどおりの結果かと思います。
このような場合の、対処法をどなたか教えてください。
procedure TFormEnt.DBGrid1CellClick(Column: TColumn);
begin
if (Edit8.Text = '') then
begin
Edit8.SetFocus;
Edit8.Text := DBGrid1.DataSource.DataSet.FieldValues['PartName'];
Edit17.Text := DBGrid1.DataSource.DataSet.FieldValues['PartPrice'];
end
else
if (Edit8.Text <> '') and (Edit9.Text = '') then
Edit9.SetFocus;
Edit9.Text := DBGrid1.DataSource.DataSet.FieldValues['PartName'];
Edit18.Text := DBGrid1.DataSource.DataSet.FieldValues['PartPrice']
end;
> else
begin //追加
> if (Edit8.Text <> '') and (Edit9.Text = '') then
begin //追加
> Edit9.SetFocus;
> Edit9.Text := DBGrid1.DataSource.DataSet.FieldValues['PartName'];
> Edit18.Text := DBGrid1.DataSource.DataSet.FieldValues['PartPrice'];
end; //追加
end; //追加
とします。
HOta様 何時も的確なアドバイスありがとうございます。
解決しました。
ツイート | ![]() |