2013-06-04 2 views
1

라이브 바인딩을 사용하여 목록 상자에 바인딩하는 TSQLDataset, Im가 있습니다. 목록 상자 항목을 클릭하면 해당 레코드의 다른 데이터 필드에 액세스 할 수 있기를 원하지만 해당 항목에 데이터 집합을 가져올 수 없기 때문에이를 수행하는 방법을 알 수 없습니다.
ID 필드를 가져 와서 라이브 바인딩을 사용하여 Selected.Tag에 할당 할 수 있지만 그 중 하나를 이해할 수는 없지만 다른 SQL 쿼리가있을 수 있고 쿼리 결과를 반환 할 수 있음을 알고 있습니다.LiveBox에서 ListBox를 선택한 후 데이터 레코드에 액세스하는 방법

일 것이지만, 라이브 바인딩은 목록 상자를 채 웁니다 때 livebindings이 항목 태그 값을 설정하는 얻는 방법을 모르는

SELECT * FROM Dataset WHERE ID=(Tag value)

.

누구나이 작업을 수행하는 방법을 알고 있습니까? 모든 위해 다음

procedure TfrmAboutSensors.lbMainItemClick(const Sender: TCustomListBox; const Item: TListBoxItem); 
begin 
    if Assigned(Item.OnClick) then 
    Item.OnClick(Item); 
end; 

: 그리고 당신이 TListBox 행사에 OnItemClick = lbMainItemClick을 가지고있다 XE5 샘플 디렉토리에있는 엠바 카데로에서 센서 정보 데모 애플리케이션이있다

+0

나는 지금 같은 문제가 있기 때문에 이것을 알아 냈는가? –

답변

0

...

그런 다음 이벤트 핸들러를 정의해야 목록에있는 항목 :

for LItem in LListBox do 
begin 
    //LItem.ItemData.Accessory := TListBoxItemData.TAccessory.aDetail; // my code 
    //LItem.ItemData.Accessory := TListBoxItemData.TAccessory.aNone; // my code 
    LItem.OnClick := ListBoxItemClick; 
end; 

도움이 될 경우 콜백을주십시오.

+0

이 답변은 실제 질문을하는 것이 아니라 목록 상자에서 선택된 db 레코드를 결정하고 액세스하는 방법을 설명합니다. –

1

ListBox의 Tag 속성을 레코드의 ID와 연결하는 것이 더 쉽습니다.