rifPhoneNum->Path = gBaseDir + "ini\History.ini";
cbPhoneNum->MruRegIniFile = rifPhoneNum;
cbPhoneNum->MruID = "PhoneNum";
cbPhoneNum->MruSection = this->ClassName();
cbPhoneNum->LoadMRUData(false);
注意:TRzMRUComboBox的MruPath和MruRegIniFile必须填一个,如果填了后者,则以后者为准(即以MruRegIniFile的类型选择写文件或写注册表);
如果MruRegIniFile为空,则创建一个TRzRegIniFile,以MruPath为路径将MruList写入注册表。MruSection和MruID必须填写。源码如下:
if ( ( FMruPath = '' ) and ( FMruRegIniFile = nil ) ) or ( FMruSection = '' ) or ( FMruID = '' ) then
Exit;
if FMruRegIniFile <> nil then
R := FMruRegIniFile
else
begin
R := TRzRegIniFile.Create( Self );
R.PathType := ptRegistry;
R.Path := FMruPath;
end;
如果窗口中有一个Default属性为True的按钮,则在TRzMRUComboBox中按回车键,触发按钮的OnClick事件,不会自动保存输入。
需要在某个地方手动地调用TRzMRUComboBox::UpdateMRUList()。可以在Button的OnClick事件中。不过如果是直接点击的按钮,
则似乎会保存两次。
TDBGrid按字段排序三步法:
1. 设置TDBGridEh的OptionEh的dghAutoSortMarking为True,如果要对多个字段排序,则设置dghMultiSortMarking为True;
2. 设置需要排序的字段(TColumnEh)的Title的TitleButton为True;
3. 编写TDBGridEh的OnTitleBtnClick事件处理函数,如下:
void __fastcall TfrmPhoneNum::dbgPhoneNumTitleBtnClick(TObject *Sender,
int ACol, TColumnEh *Column)
{
// 排序
TADOQuery* aQuery = static_cast<TADOQuery*>(dsPhoneNum->DataSet);
if(Column->Title->SortMarker == smDownEh)
aQuery->Sort = Column->FieldName;
else
aQuery->Sort = Column->FieldName + " DESC";
}
//---------------------------------------------------------------------------


这山望着那山高