控件:
TmxOutlookBarPro在http://www.2ccc.com/article.asp?articleid=97中可以下载得到问题是,我们在单击某个列表的时候,如何得到它的指定属性值。
比如单击第一个可以写成
/*
mxBarLook: TmxOutlookBarPro;
*/
mxBarLook.Header[0].Button[0].Caption
得到第一个选项框中的第一个BUTTON,如何实现点击它自动得到他们的index并且显示它们的CAPTION或者其他属性!具体代码如下:
/*
mxBarLook.Header[index].Button[index].Caption
*/可能你们会说,直接写即可,但是这个BUTTON是动态生成的;直接在
/*
Button: TmxButton;
*/
Button := mxBarLook.Header[0].AddButton;
button.Caption:='abc'
button.ImageIndex:=1
button.OnClick:=mxOutlookBarUserOnClick;
procedure mxOutlookBarUserOnClick(Sender:TObject);
begin
ShowMessage(得到单击BUTTON的CAPTION);
mxBarLook.header[0].button[???????????????].caption
end;
TmxOutlookBarPro在http://www.2ccc.com/article.asp?articleid=97中可以下载得到问题是,我们在单击某个列表的时候,如何得到它的指定属性值。
比如单击第一个可以写成
/*
mxBarLook: TmxOutlookBarPro;
*/
mxBarLook.Header[0].Button[0].Caption
得到第一个选项框中的第一个BUTTON,如何实现点击它自动得到他们的index并且显示它们的CAPTION或者其他属性!具体代码如下:
/*
mxBarLook.Header[index].Button[index].Caption
*/可能你们会说,直接写即可,但是这个BUTTON是动态生成的;直接在
/*
Button: TmxButton;
*/
Button := mxBarLook.Header[0].AddButton;
button.Caption:='abc'
button.ImageIndex:=1
button.OnClick:=mxOutlookBarUserOnClick;
procedure mxOutlookBarUserOnClick(Sender:TObject);
begin
ShowMessage(得到单击BUTTON的CAPTION);
mxBarLook.header[0].button[???????????????].caption
end;
怎样才能取得该指针对应的数据呢,我的代码如下://数据结构定义如下:
type
TFData=^FData;
FData=Record
UID:string;
UNAME:string;
IMGINDEX:Integer;
STATUSINDEX:integer;
UIP:string;
end;//以下是动态产生mxButton,并给Data赋值: for i:=0 to ClientDataSet.RecordCount-1 do
begin
mxBtm:=mxOutlookBar.Headers[0].AddButton;
mxBtm.Caption:= Trim(ClientDataSet.FieldByName('uName').Asstring);
mxBtm.Name:='mxBtm'+inttostr(mxOutlookBar.Headers[0].ButtonCount+1);
New(FData); FData.UID:=Trim(ClientDataSet.FieldByName('UID').Asstring);
FData.UNAME:=Trim(ClientDataSet.FieldByName('uName').Asstring);
FData.IMGINDEX:=ClientDataSet.FieldByName('IMGINDEX').Value;
FData.STATUSINDEX:=ClientDataSet.FieldByName('STATUSINDEX').Value;
FData.UIP:=Trim(ClientDataSet.FieldByName('LOCALIP').Asstring); mxBtm.Data:=FData;
mxBtm.OnClick:= mxBtnDBClick;
ClientDataSet.Next;
end;
//以下是自定义点击事件,用来取得Data的数据:procedure TChatFrm.mxBtnDBClick(Sender:TObject);
var
xData:TFData;
mxBtm:TmxButton;
begin
if Sender is TmxButton
then begin
mxBtm:= TmxButton(Sender).Data;
//showmessage(mxBtm.Caption);
MsgEditFrm:= TMsgEditFrm.Create(Application);
with MsgEditFrm do
begin
//初始化参数
xData:= TFData(mxBtm.Data);
uID.Caption:= xData^.UNAME+' '+xData^.UID;//报错
IpLabel.Caption:='对方IP: '+xData^.UIP;//报错
ShowModal;
end;
end;
end;