📄 ebarmegademomain.cpp
字号:
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::dxCityComboChange(TObject *Sender)
{
SetFilter();
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::SetFilter(void)
{
const
String PaymentStr[] = {"CASH", "VISA", "MASTER", "AMEX"};
AnsiString Filter, S;
int i;
Filter = "";
if (dxCityCombo->Text != "")
if (dxCityCombo->SelectedNode->Count == 0) Filter = "City = '"+dxCityCombo->Text+"'";
else
{
for( i= 0; i < dxCityCombo->SelectedNode->Count; i++)
if (Filter == "") Filter = Filter + "( City = '" + dxCityCombo->SelectedNode->Item[i]->Text+"' )";
else Filter = Filter + " or ( City = '" + dxCityCombo->SelectedNode->Item[i]->Text+"' )";
};
if (Filter != "") Filter = "(" + Filter + ")";
if (dxProductsCombo->Text != "")
if (Filter == "") Filter = "( ProductID = " +EBarMegaDemoMainDM->tblProducts->FieldByName("ID")->AsString + ")";
else Filter = Filter + " and ( ProductID = " +EBarMegaDemoMainDM->tblProducts->FieldByName("ID")->AsString + ")";
if (dxDate->Text != "")
if (Filter == "") Filter = "( PurchaseDate = '" + DateToStr(dxDate->Date) + "')";
else Filter = Filter + " and ( PurchaseDate = '" + DateToStr(dxDate->Date) + "')";
if (dxTypeCombo->Text != "")
if (Filter == "") Filter = "( PaymentType = '" + PaymentStr[dxTypeCombo->ItemIndex] + "')";
else Filter = Filter + " and ( PaymentType = '" + PaymentStr[dxTypeCombo->ItemIndex] + "')";
EBarMegaDemoMainDM->tblContacts->Filter = Filter;
EBarMegaDemoMainDM->tblContacts->Filtered = true;
};
void __fastcall TEBarMegaDemoMainForm::dxClearBtnClick(TObject *Sender)
{
dxCityCombo->Text = "";
dxProductsCombo->KeyValue = NULL;
dxProductsCombo->Text = "";
dxDate->Text = "";
dxTypeCombo->ItemIndex = -1;
EBarMegaDemoMainDM->tblContacts->Filter = "";
EBarMegaDemoMainDM->tblContacts->Filtered = false;
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::dxOptionsClick(TObject *Sender)
{
EBarMegaDemoOptionsForm->Show();
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::ProgressChange(TObject *Sender,
long Progress, long ProgressMax)
{
dxBarProgress->Max = ProgressMax;
dxBarProgress->Position = Progress;
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::FindDialogFind(TObject *Sender)
{
TFindDialog *ADialog = ((TFindDialog*) Sender);
int StartPos, FindLength, FoundAt;
TSearchTypes Flags;
TPoint P;
RECT R, CaretR, IntersectR;
if (ADialog->Options.Contains(frDown))
{
if (Editor->SelLength == 0) StartPos = Editor->SelStart;
else StartPos = Editor->SelStart + Editor->SelLength;
FindLength = Editor->Text.Length() - StartPos;
}
else
{
StartPos = Editor->SelStart;
FindLength = -StartPos;
}
Flags.Clear();
if (ADialog->Options.Contains(frMatchCase)) Flags << stMatchCase;
if (ADialog->Options.Contains(frWholeWord)) Flags << stWholeWord;
Screen->Cursor = crHourGlass;
FoundAt = Editor->FindText(ADialog->FindText, StartPos, FindLength, Flags);
if (!(ADialog->Options.Contains(frReplaceAll))) Screen->Cursor = crDefault;
if (FoundAt > -1)
if (ADialog->Options.Contains(frReplaceAll))
{
Editor->SelStart = FoundAt;
Editor->SelLength = ADialog->FindText.Length();
}
else
{
Editor->SetFocus();
Editor->SelStart = FoundAt;
Editor->SelLength = ADialog->FindText.Length();
GetCaretPos(&P);
P = Editor->ClientToScreen(P);
CaretR = Rect(P.x, P.y, P.x + 2, P.y + 20);
GetWindowRect(Editor->Handle, &R);
if (IntersectRect(&IntersectR, &CaretR, &R))
if (P.y < Screen->Height / 2)
ADialog->Top = P.y + 40;
else
ADialog->Top = P.y - (R.bottom - R.top + 20);
if (ADialog->Top < 0) ADialog->Top = 0;
}
else
if (!(ADialog->Options.Contains(frReplaceAll)))
Application->MessageBox(sRichEditTextNotFound,
sRichEditFoundResultCaption, MB_ICONINFORMATION);
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::ReplaceDialogReplace(TObject *Sender)
{
TReplaceDialog *ADialog = ((TReplaceDialog*) Sender);
int ReplacedCount, OldSelStart, PrevSelStart;
AnsiString S;
ReplacedCount = 0;
OldSelStart = Editor->SelStart;
if (ADialog->Options.Contains(frReplaceAll)) Screen->Cursor = crHourGlass;
do
{
if ((Editor->SelLength > 0) && ((Editor->SelText == ADialog->FindText) ||
(!(ADialog->Options.Contains(frMatchCase)) &&
(AnsiUpperCase(Editor->SelText) == AnsiUpperCase(ADialog->FindText)))))
{
Editor->SelText = ADialog->ReplaceText;
ReplacedCount++;
}
PrevSelStart = Editor->SelStart;
FindDialogFind(Sender);
}
while (!(!(ADialog->Options.Contains(frReplaceAll)) || (Editor->SelStart == PrevSelStart)));
if (ADialog->Options.Contains(frReplaceAll))
{
Screen->Cursor = crDefault;
if (ReplacedCount == 0) S = sRichEditTextNotFound;
else
{
Editor->SelStart = OldSelStart;
S = Format(sRichEditReplaceAllResult, ARRAYOFCONST((ReplacedCount)));
}
Application->MessageBox(S.c_str(), sRichEditFoundResultCaption,
MB_ICONINFORMATION);
}
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::DocumentComplete(TObject *Sender, LPDISPATCH pDisp,
#if (__BORLANDC__ == 0x540) && (__BORLANDC__ < 0x550) // BCB = 4
void
#endif
#if (__BORLANDC__ >= 0x550) && (__BORLANDC__ < 0x560) // BCB = 5
TVariant
#endif
#if __BORLANDC__ >= 0x560 // BCB = 6
tagVARIANT
#endif
* URL)
{
dxBarProgress->Position = 0;
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::BeforeNavigate(TObject *Sender, LPDISPATCH pDisp,
#if (__BORLANDC__ >= 0x550) && (__BORLANDC__ < 0x560) // BCB = 5
TVariant* URL, TVariant* Flags, TVariant* TargetFrameName, TVariant* PostData, TVariant* Headers, TOLEBOOL* Cancel
#elif (__BORLANDC__ == 0x540) && (__BORLANDC__ < 0x550) // BCB = 4
void* URL, void* Flags, void* TargetFrameName, void* PostData, void* Headers, void* Cancel
#else
tagVARIANT* URL, tagVARIANT* Flags, tagVARIANT* TargetFrameName, tagVARIANT* PostData, tagVARIANT* Headers, short* Cancel
#endif
)
{
int NewIndex, i;
AnsiString NAddress;
TdxBarItemLink *AItemLink;
#if __BORLANDC__ > 0x530 // BCB version > 3
TVariant* AURL = (TVariant*)URL;
#else
Variant AURL = *URL;
#endif
#if __BORLANDC__ > 0x530 // BCB version > 3
NAddress = *AURL;
#else
NAddress = AURL;
#endif
if (NAddress == "") NAddress = Address;
if (NAddress == "") return;
NewIndex = HistoryList->IndexOf(NAddress);
if (NewIndex == -1) {
HistoryList->Add(NAddress);
NewIndex = HistoryList->IndexOf(NAddress);
};
UpdateCombo = false;
dxAddressCombo->Text = NAddress;
UpdateCombo = true;
ForwardPopupMenu->ItemLinks->Clear();
for( i = HistoryList->Count - 1; i >= NewIndex + 1; i--) {
AItemLink = ForwardPopupMenu->ItemLinks->Add();
AItemLink->Index = 0;
AItemLink->Item = dxBarHistory;
AItemLink->UserCaption = HistoryList->Strings[i];
};
BackPopupMenu->ItemLinks->Clear();
for( i = 0; i< NewIndex; i++) {
AItemLink = BackPopupMenu->ItemLinks->Add();
AItemLink->Index = 0;
AItemLink->Item = dxBarHistory;
AItemLink->UserCaption = HistoryList->Strings[i];
}
HistoryIndex = NewIndex;
if (HistoryIndex == 0) {
dxBackBtn->Enabled = false;
dxIEBackBtn->Enabled = false;
}
else
{
dxBackBtn->Enabled = true;
dxIEBackBtn->Enabled = true;
};
if (HistoryIndex == HistoryList->Count - 1) {
dxForwardBtn->Enabled = false;
dxIEForwardBtn->Enabled = false;
}
else
{
dxForwardBtn->Enabled = true;
dxIEForwardBtn->Enabled = true;
};
}
void __fastcall TEBarMegaDemoMainForm::StatusTextChange(TObject * Sender, BSTR Text)
{
if ((String)Text == "")
dxBSIEStatus->Caption = "Done";
else
dxBSIEStatus->Caption = TCaption(Text);
}
void __fastcall TEBarMegaDemoMainForm::TitleChange(TObject * Sender, BSTR Text)
{
Caption = (TCaption)Text;
}
void __fastcall TEBarMegaDemoMainForm::dxBarComboFontSizeChange(TObject *Sender)
{
if (! FUpdating)
Editor->SelAttributes->Size = StrToInt(dxBarComboFontSize->Text);
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::dxBarComboFontSizeClick(TObject *Sender)
{
FontDialog->Font->Assign(Editor->SelAttributes);
if (FontDialog->Execute())
Editor->SelAttributes->Assign(FontDialog->Font);
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::tContactsCalcFields(TDataSet *DataSet)
{
DataSet->FieldByName("CustName")->AsString = DataSet->FieldByName("FirstName")->AsString +
" " + DataSet->FieldByName("LastName")->AsString;
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::dxProductsComboChange(
TObject *Sender)
{
SetFilter();
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::dxDateChange(TObject *Sender)
{
SetFilter();
}
//---------------------------------------------------------------------------
void __fastcall TEBarMegaDemoMainForm::dxTypeComboChange(TObject *Sender)
{
SetFilter();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -