DBGrid内である文字列データを取出す、順次Editにコピーするには?

解決


サンプー  2006-03-10 09:11:43  No: 20446

何時もお世話になります
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;


HOta  2006-03-10 15:46:42  No: 20447

>  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;     //追加
とします。


サンプー  2006-03-10 16:21:16  No: 20448

HOta様  何時も的確なアドバイスありがとうございます。
解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加