1 //---------------------------------------------------------------------------
\r
5 #include <vcl\Clipbrd.hpp>
\r
11 using namespace std;
\r
13 //---------------------------------------------------------------------------
\r
14 #pragma package(smart_init)
\r
15 #pragma resource "*.dfm"
\r
17 //---------------------------------------------------------------------------
\r
19 TFGraph::TFGraph(TComponent* Owner) : TForm(Owner) {
\r
21 qDrawGraph = new QDrawGraph(PaintBox->Canvas);
\r
22 qDrawHsvGraph = new QDrawHSVGraph(ImageHsv->Canvas);
\r
24 //---------------------------------------------------------------------------
\r
29 TFGraph::FormDestroy(TObject *Sender) {
\r
31 delete qDrawHsvGraph;
\r
33 //---------------------------------------------------------------------------
\r
38 TFGraph::Execute(QBits *_qBits) {
\r
41 if (qDrawGraph == NULL) {
\r
42 qDrawGraph = new QDrawGraph(PaintBox->Canvas);
\r
44 qDrawGraph->SetImageSize(PaintBox->Width,PaintBox->Height);
\r
46 RBShowAll->Checked = FMain->MMShowAll->Checked;
\r
47 RBShowNonZero->Checked = FMain->MMShowNonZero->Checked;
\r
49 SBarStandard->Position = 0;
\r
51 if (RBShowAll->Checked) {
\r
52 qDrawGraph->SetDrawMode(QDrawGraph::DM_ALL,qBits);
\r
53 } else if (RBShowNonZero->Checked) {
\r
54 qDrawGraph->SetDrawMode(QDrawGraph::DM_NONZERO,qBits);
\r
59 qDrawHsvGraph->SetCanvas(ImageHsv->Canvas);
\r
60 qDrawHsvGraph->DrawAll(qBits);
\r
61 qDrawHsvGraph->SetCanvas(ImageHsv2D->Canvas);
\r
62 qDrawHsvGraph->DrawAll2D(qBits);
\r
63 PaintBox->Repaint();
\r
66 //---------------------------------------------------------------------------
\r
68 * Show Measured Value
\r
71 TFGraph::ShowMeasurement(void) {
\r
72 if (qBits->GetNumberOfMeasured()==0) {
\r
73 REMeasured->Text = "Measurement was not performed.";
\r
76 qBits->PerformMeasurement();
\r
78 qBits->SaveMeasurementToStream(ss);
\r
79 REMeasured->Text = ss.str().c_str();
\r
81 //---------------------------------------------------------------------------
\r
83 //---------------------------------------------------------------------------
\r
85 TFGraph::FormMouseWheel(TObject *Sender, TShiftState Shift, int WheelDelta, TPoint &MousePos, bool &Handled) {
\r
86 if (PageControl->ActivePage != TSStandard) {
\r
90 const double m = 0.1;
\r
91 int t = qDrawGraph->GetViewingTop();
\r
92 qDrawGraph->SetViewingTop(t - m*WheelDelta);
\r
94 if(t != qDrawGraph->GetViewingTop()) {
\r
95 qDrawGraph->Paint(qBits);
\r
98 double r = qDrawGraph->GetViewingTopRatio();
\r
99 SBarStandard->Position = (int)((SBarStandard->Max-SBarStandard->Min)*r+SBarStandard->Min);
\r
101 //---------------------------------------------------------------------------
\r
106 TFGraph::MMSaveResultsClick(TObject *Sender) {
\r
111 if (PageControl->ActivePage == TSMeasured) {
\r
112 SaveDialog->Title = "Save Measured Results to File";
\r
114 SaveDialog->Title = "Save Results to File";
\r
117 if (!SaveDialog->Execute())return;
\r
119 char *filename = SaveDialog->FileName.c_str();
\r
120 if (PageControl->ActivePage == TSMeasured) {
\r
121 //Save Measured Results
\r
123 ofs.open(filename);
\r
124 qBits->SaveMeasurementToStream(ofs);
\r
127 qBits->SaveAsText(filename);
\r
131 //---------------------------------------------------------------------------
\r
133 TFGraph::MMCloseClick(TObject *Sender) {
\r
136 //---------------------------------------------------------------------------
\r
138 TFGraph::RBShowNonZeroClick(TObject *Sender) {
\r
139 FMain->MMShowNonZero->Checked = true;
\r
140 SBarStandard->Position = 0;
\r
141 qDrawGraph->SetDrawMode(QDrawGraph::DM_NONZERO,qBits);
\r
142 qDrawGraph->Paint(qBits);
\r
144 //---------------------------------------------------------------------------
\r
146 TFGraph::RBShowAllClick(TObject *Sender) {
\r
147 FMain->MMShowAll->Checked = true;
\r
148 SBarStandard->Position = 0;
\r
149 qDrawGraph->SetDrawMode(QDrawGraph::DM_ALL,qBits);
\r
150 qDrawGraph->Paint(qBits);
\r
152 //---------------------------------------------------------------------------
\r
154 TFGraph::PaintBoxPaint(TObject *Sender) {
\r
155 qDrawGraph->Paint(qBits);
\r
157 //---------------------------------------------------------------------------
\r
159 TFGraph::SBarStandardScroll(TObject *Sender, TScrollCode ScrollCode, int &ScrollPos) {
\r
160 double r = (double)ScrollPos/(double)(SBarStandard->Max-SBarStandard->Min);
\r
161 qDrawGraph->SetViewingTopRatio(r);
\r
162 qDrawGraph->Paint(qBits);
\r
164 //---------------------------------------------------------------------------
\r
166 TFGraph::FormResize(TObject *Sender) {
\r
167 if (qDrawGraph==NULL) {
\r
170 qDrawGraph->SetImageSize(PaintBox->Width,PaintBox->Height);
\r
172 //---------------------------------------------------------------------------
\r
174 TFGraph::MMCopyClick(TObject *Sender) {
\r
175 if (REMeasured->SelLength==0) {
\r
178 TClipboard *co = Clipboard();
\r
179 co->AsText = REMeasured->SelText;
\r
181 //---------------------------------------------------------------------------
\r
183 TFGraph::PMCopyClick(TObject *Sender) {
\r
186 //---------------------------------------------------------------------------
\r
187 void __fastcall TFGraph::MMHideClick(TObject *Sender) {
\r
190 //---------------------------------------------------------------------------
\r