git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@31 05c56307-c608-d34a-929d-697000501d7a
149 lines
5.1 KiB
C++
149 lines
5.1 KiB
C++
//---------------------------------------------------------------------------
|
|
|
|
#include <vcl.h>
|
|
#pragma hdrstop
|
|
|
|
#include "ProviderModeDemoMain.h"
|
|
//---------------------------------------------------------------------------
|
|
#pragma package(smart_init)
|
|
#pragma link "cxClasses"
|
|
#pragma link "cxControls"
|
|
#pragma link "cxCustomData"
|
|
#pragma link "cxData"
|
|
#pragma link "cxDBData"
|
|
#pragma link "cxEdit"
|
|
#pragma link "cxFilter"
|
|
#pragma link "cxGraphics"
|
|
#pragma link "cxStyles"
|
|
#pragma link "cxLookAndFeels"
|
|
#pragma link "DemoBasicMain"
|
|
#pragma link "cxInplaceContainer"
|
|
#pragma link "cxNavigator"
|
|
#pragma link "cxVGrid"
|
|
#pragma resource "*.dfm"
|
|
TProviderModeDemoMainForm *ProviderModeDemoMainForm;
|
|
|
|
const String TabChar = "\t";
|
|
//---------------------------------------------------------------------------
|
|
__fastcall TProviderModeDemoMainForm::TProviderModeDemoMainForm(TComponent* Owner)
|
|
: TDemoBasicMainForm(Owner)
|
|
{
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TProviderModeDemoMainForm::FormCreate(TObject *Sender)
|
|
{
|
|
CustomerList = new TCustomerList();
|
|
GenerateColumns();
|
|
LoadData();
|
|
CustomerDataSource = new TCustomerDataSource(CustomerList);
|
|
cxVirtualVerticalGrid->DataController->CustomDataSource =
|
|
CustomerDataSource;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TProviderModeDemoMainForm::FormDestroy(TObject *Sender)
|
|
{
|
|
cxVirtualVerticalGrid->DataController->CustomDataSource = NULL;
|
|
delete CustomerDataSource;
|
|
delete CustomerList;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TProviderModeDemoMainForm::FormCloseQuery(TObject *Sender,
|
|
bool &CanClose)
|
|
{
|
|
int i = -1;
|
|
if (CustomerDataSource->Modified)
|
|
i = MessageDlg("Do you want to save the changes ?", mtConfirmation, TMsgDlgButtons() <<mbYes << mbNo << mbCancel, 0);
|
|
switch (i) {
|
|
case mrYes: SaveData(); break;
|
|
case mrCancel: CanClose = false; break;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TProviderModeDemoMainForm::miLinesClick(TObject *Sender)
|
|
{
|
|
switch (((TMenuItem*)Sender)->Tag){
|
|
case 0: cxVirtualVerticalGrid->OptionsView->GridLines = vglNone; break;
|
|
case 1: cxVirtualVerticalGrid->OptionsView->GridLines = vglHorizontal; break;
|
|
case 2: cxVirtualVerticalGrid->OptionsView->GridLines = vglVertical; break;
|
|
case 3: cxVirtualVerticalGrid->OptionsView->GridLines = vglBoth; break;
|
|
}
|
|
((TMenuItem*)Sender)->Checked = true;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TProviderModeDemoMainForm::actCellAutoHeightExecute(TObject *Sender)
|
|
{
|
|
((TAction*)Sender)->Checked = !((TAction*)Sender)->Checked;
|
|
cxVirtualVerticalGrid->OptionsView->CellAutoHeight = ((TAction*)Sender)->Checked;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TProviderModeDemoMainForm::actCellEndEllipsisExecute(TObject *Sender)
|
|
{
|
|
((TAction*)Sender)->Checked = !((TAction*)Sender)->Checked;
|
|
cxVirtualVerticalGrid->OptionsView->CellEndEllipsis = ((TAction*)Sender)->Checked;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TProviderModeDemoMainForm::GenerateColumns()
|
|
{
|
|
cxVirtualVerticalGrid->ClearRows();
|
|
|
|
TcxEditorRow *ARow =
|
|
(TcxEditorRow*)cxVirtualVerticalGrid->AddChild(NULL, __classid(TcxEditorRow));
|
|
ARow->Properties->Caption = "ID";
|
|
|
|
ARow =
|
|
(TcxEditorRow*)cxVirtualVerticalGrid->AddChild(NULL, __classid(TcxEditorRow));
|
|
ARow->Properties->Caption = "Customer";
|
|
|
|
ARow =
|
|
(TcxEditorRow*)cxVirtualVerticalGrid->AddChild(NULL, __classid(TcxEditorRow));
|
|
ARow->Properties->Caption = "Company";
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TProviderModeDemoMainForm::LoadData()
|
|
{
|
|
TCustomer* ACustomer;
|
|
AnsiString s;
|
|
TStringList* StringList = new TStringList();
|
|
try{
|
|
StringList->LoadFromFile("contacts.txt");
|
|
for(int i = 0; i < StringList->Count; i++) {
|
|
ACustomer = new TCustomer(CustomerList->NextID);
|
|
s = StringList->Strings[i];
|
|
ACustomer->Name = s.SubString(1, s.Pos(TabChar) - 1);
|
|
ACustomer->Description = s.SubString(s.Pos(TabChar) + 1, s.Length());
|
|
CustomerList->Add(ACustomer);
|
|
}
|
|
}
|
|
__finally {
|
|
delete StringList;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TProviderModeDemoMainForm::SaveData()
|
|
{
|
|
TCustomer* ACustomer;
|
|
TStringList* StringList = new TStringList();
|
|
try {
|
|
for(int i = 0; i < CustomerList->Count; i++) {
|
|
ACustomer = CustomerList->Customers[i];
|
|
StringList->Add(ACustomer->Name + TabChar + ACustomer->Description);
|
|
}
|
|
StringList->SaveToFile("contacts.txt");
|
|
}
|
|
__finally {
|
|
delete StringList;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
|