2011-05-04 25 views
0

我正在製作一個用於汽車零部件商店的簡單程序。以下是它的外觀:Link從另一種形式的主窗體使用有關DBGrid的命令

問題是左側的小窗口。應該在主窗口中雙擊DBGrid中的任何行時打開它,並且它應該在DBEdit字段中顯示所有選定項目的特性。如果單擊保存按鈕,應該將DBEdit字段的更改保存到數據庫中,否則應該忽略這些更改。

我成功通過使用此代碼在DBGrid的字段通過雙擊打開另一種形式:

procedure TForm1.DBGrid1DblClick(Sender: TObject); 
    begin 
    if not Assigned(Form2) 
      then Form2 := TForm2.Create(Application); 
    Form2.Show; 
    end; 

現在唯一的問題是,如何讓程序來檢測,選擇這行中的DBGrid中,然後在較小的窗口中的DBEdit字段中顯示其內容。

有誰能告訴我該怎麼做,請嗎?

謝謝!

回答

2

只需將TDBEdits添加到TForm2,並將它們連接到DBGrid正在使用的相同DataSource。他們將自動顯示DBGrid中選定的同一行的內容,並且您可以編輯或插入DataSource'sDataSet,並自動在DBGrid中顯示新的或更改的數據。

+0

感謝您的回答! 我試過這樣做,但是當我將TDBEdit添加到TForm2中,並嘗試將其分配給與TDBgrid相同的DataSource時,它不會出現在數據源列表中。 我正在使用德爾福6,所以這可能是一個問題? – Radiant 2011-05-04 18:07:22

+1

您必須將包含DataSource的單元添加到TForm2的uses子句(接口或top,使用子句)。它在Delphi中可以很好地工作回到版本1. – 2011-05-04 18:11:24

+0

謝謝你們,它可行! – Radiant 2011-05-04 18:13:08

1

有很多方法可以做到這一點。我將介紹兩種:

  • 如果您在小窗口中的DBGrid的鏈接DBEdits到同一數據源,那麼你都設置

OR

  • 可以傳遞無論您想要從Form1到Form2的DBGrid1DblClick內的任何信息。這個選項本身有很多可能性。

更新

爲數據源在窗體2可見,單元使窗體2的單位使用Form1的單元。

+0

謝謝,它工作! – Radiant 2011-05-04 18:13:24