viewchartdemomain.cpp

来自「胜天进销存源码,国产优秀的进销存」· C++ 代码 · 共 579 行 · 第 1/2 页

CPP
579
字号
  {
    TColor AEndColor;
    if (AViewInfo->State == gcsNone)
      AEndColor = clBlack;
    else
      AEndColor = clGray;
    FillGradientRectEx(ACanvas, AViewInfo->ContentBounds, clWhite, AEndColor,
      Sender->GridView->DiagramColumn->Active);
    ADone = true;
  }  
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::grMainActiveTabChanged(TcxCustomGrid *Sender,
      TcxGridLevel *ALevel)
{
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miColumnDiagramClick(TObject *Sender)
{
  ActiveChart->DiagramColumn->Active = true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miBarDiagramClick(TObject *Sender)
{
  ActiveChart->DiagramBar->Active = true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miTitlePositionItemClick(TObject *Sender)
{
  ActiveChart->Title->Position = (TcxGridChartPartPosition)((TMenuItem*)Sender)->MenuIndex;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miLegendPositionItemClick(TObject *Sender)
{
  ActiveChart->ActiveDiagram->Legend->Position = (TcxGridChartPartPosition)((TMenuItem*)Sender)->MenuIndex;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miLegendBorderClick(TObject *Sender)
{
  if (!((TMenuItem*)Sender)->Checked)
    ActiveChart->ActiveDiagram->Legend->Border = lbSingle;
  else
    ActiveChart->ActiveDiagram->Legend->Border = lbNone;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miValueCaptionPositionItemClick(
      TObject *Sender)
{
  ActiveColumnDiagram->Values->CaptionPosition =
    (TcxGridChartColumnDiagramValueCaptionPosition)((TMenuItem*)Sender)->MenuIndex;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::chvSalesActiveDiagramChanged(
      TcxGridChartView *Sender, TcxGridChartDiagram *ADiagram)
{
  if (Sender == ActiveChart) UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miAxisVisibleClick(TObject *Sender)
{
  GetActiveAxis(Sender)->Visible = !GetActiveAxis(Sender)->Visible;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miAxisGridLinesClick(TObject *Sender)
{
  GetActiveAxis(Sender)->GridLines = !GetActiveAxis(Sender)->GridLines;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miAxisTickMarkKindItemClick(TObject *Sender)
{
  GetActiveAxis(Sender)->TickMarkKind = (TcxGridChartHistogramTickMarkKind)((TMenuItem*)Sender)->MenuIndex;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miAxisTickMarkLabelsClick(TObject *Sender)
{
  GetActiveAxis(Sender)->TickMarkLabels = !GetActiveAxis(Sender)->TickMarkLabels;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miCategoryAxisCategoriesInReverseOrderClick(
      TObject *Sender)
{
  TcxGridChartHistogramAxisCategory* AAxis = (TcxGridChartHistogramAxisCategory*)GetActiveAxis(Sender);
  AAxis->CategoriesInReverseOrder = !AAxis->CategoriesInReverseOrder;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miCategoryAxisValueAxisAtMaxCategoryClick(
      TObject *Sender)
{
  TcxGridChartHistogramAxisCategory* AAxis = (TcxGridChartHistogramAxisCategory*)GetActiveAxis(Sender);
  AAxis->ValueAxisAtMaxCategory = !AAxis->ValueAxisAtMaxCategory;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miCategoryAxisValueAxisBetweenCategoriesClick(
      TObject *Sender)
{
  TcxGridChartHistogramAxisCategory* AAxis = (TcxGridChartHistogramAxisCategory*)GetActiveAxis(Sender);
  AAxis->ValueAxisBetweenCategories = !AAxis->ValueAxisBetweenCategories;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miLineDiagramClick(TObject *Sender)
{
  ActiveChart->DiagramLine->Active = true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miAreaDiagramClick(TObject *Sender)
{
  ActiveChart->DiagramArea->Active = true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miPieDiagramClick(TObject *Sender)
{
  ActiveChart->DiagramPie->Active = true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miToolBoxClick(TObject *Sender)
{
  if (ActiveChart->ToolBox->Visible == tvNever)
    ActiveChart->ToolBox->Visible = tvAlways;
  else
    ActiveChart->ToolBox->Visible = tvNever;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miToolBoxPositionClick(TObject *Sender)
{
  ActiveChart->ToolBox->Position = (TcxGridChartToolBoxPosition)((TMenuItem*)Sender)->MenuIndex;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miLineStyleClick(TObject *Sender)
{
  ActiveLineDiagram->Values->LineStyle = (TcxGridChartLineStyle)((TMenuItem*)Sender)->MenuIndex;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miLineWidthClick(TObject *Sender)
{
  ActiveLineDiagram->Values->LineWidth = StrToInt(((TMenuItem*)Sender)->Caption);
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miMarkerStyleClick(TObject *Sender)
{
  ActiveLineDiagram->Values->MarkerStyle = (TcxGridChartMarkerStyle)((TMenuItem*)Sender)->MenuIndex;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miMarkerSizeClick(TObject *Sender)
{
  ActiveLineDiagram->Values->MarkerSize = StrToInt(((TMenuItem*)Sender)->Caption);
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miValueStackingClick(TObject *Sender)
{
  ActiveLineDiagram->Values->Stacking = (TcxGridChartValuesStacking)((TMenuItem*)Sender)->MenuIndex;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miLineValueCaptionPositionClick(
      TObject *Sender)
{
  ActiveLineDiagram->Values->CaptionPosition =
    (TcxGridChartLineDiagramValueCaptionPosition)((TMenuItem*)Sender)->MenuIndex;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miSeriesCaptionsClick(TObject *Sender)
{
  ActivePieDiagram->SeriesCaptions = !ActivePieDiagram->SeriesCaptions;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miSeriesSitesClick(TObject *Sender)
{
  ActivePieDiagram->SeriesSites = !ActivePieDiagram->SeriesSites;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miSeriesColumnsClick(TObject *Sender)
{
  ActivePieDiagram->SeriesColumnCount = StrToInt(((TMenuItem*)Sender)->Caption);
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miPieValueCaptionPositionClick(
      TObject *Sender)
{
  ActivePieDiagram->Values->CaptionPosition =
    (TcxGridChartPieDiagramValueCaptionPosition)((TMenuItem*)Sender)->MenuIndex;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::miPieValueCaptionItemClick(
      TObject *Sender)
{
  TcxGridChartPieDiagramValueCaptionItem ACaptionItem =
    (TcxGridChartPieDiagramValueCaptionItem)((TMenuItem*)Sender)->MenuIndex;
  TcxGridChartPieDiagramValueCaptionItems ACaptionItems = ActivePieDiagram->Values->CaptionItems;
  if (ACaptionItems.Contains(ACaptionItem))
    ACaptionItems >> ACaptionItem;
  else
    ACaptionItems << ACaptionItem;
  ActivePieDiagram->Values->CaptionItems = ACaptionItems;
  UpdateControls();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::FormActivate(TObject *Sender)
{
  UpdateControls();  // to update menu after chart view was changed via Customization Form
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::chvSalesDiagramAreaCustomDrawValueArea(
      TcxGridChartAreaDiagram *Sender, TcxCanvas *ACanvas,
      TcxGridChartAreaDiagramValueViewInfo *AViewInfo, bool &ADone)
{
  TcxRegion* AClipRegion = ACanvas->GetClipRegion(true);
  try {
    TcxRegion* ARegion = AViewInfo->CreateAreaRegion();
    try {
      ACanvas->SetClipRegion(ARegion, roIntersect, false, true);
      FillGradientRectEx(ACanvas, AViewInfo->GetRealBounds(), clWhite, clMedGray, true);
    }  
    __finally {
      ARegion->Free();
    }
  }
  __finally {
    ACanvas->SetClipRegion(AClipRegion, roSet, true, true);
  }
  ADone = true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMain::chvSalesValueClick(TcxGridChartView *Sender,
      TcxGridChartSeries *ASeries, int AValueIndex, bool &AHandled)
{
  qrSales->Locate("Name", Sender->Categories->VisibleValues[AValueIndex], TLocateOptions());
  tblOrders->Locate("ProductID", qrSales->FieldByName("ID")->AsInteger, TLocateOptions());
  grMainLevel1->Active = true;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?