各位前輩,小弟寫一個畫圖的程式,之前經過RedShow前輩指點解決一些問題!!
但現在碰到一個問題,小弟想畫完十筆或更多筆資料後清掉原來IMAGE的圖,重頭再畫!!
但卻怪怪的,原本出現的圖卻不出現了,也不能畫十筆資料後再重來,好像當掉了!!希望前輩們指點,或該用何種方式解決,以下是程式碼!!
//#include
#pragma hdrstop #include "Unit1.h"
#include
vector xx; // 存放 X 座標值之陣列
vector yy; // 存放 Y 座標值之陣列 //---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------- void __fastcall TForm1::MiOpenClick(TObject *Sender)
{
Image3->Picture = NULL;
Image2->Picture = NULL;
Image1->Picture = NULL;
if (OpenDialog1->Execute())
{
TStringList *slData = new TStringList;
xx.clear();
yy.clear();
slData->LoadFromFile(OpenDialog1->FileName); // 讀取座標資料文字檔
// 將所有的換行符號轉成空白字元 (變成一整行資料,每組數字間以空白字元分隔)
slData->Text = StringReplace(slData->Text, "\r\n", " ", TReplaceFlags()<CommaText = slData->Text;
for (int i=0; iCount; i =2)
{
xx.push_back(StrToInt(slData->Strings[i])); // 將 X 座標值設給新增的 xx 陣列
yy.push_back(StrToInt(slData->Strings[i 1])); // 將 Y 座標值設給新增的 yy 陣列
} for (int i=1; iPicture = NULL;
}
Image3->Canvas->MoveTo(280 (xx[i-1])*12.5,(270-(yy[i-1])*12.5));
Image3->Canvas->LineTo(280 (xx[i])*12.5, 270-(yy[i])*12.5);
}
還有清除Image圖的方法是我試出來的,不知道對不對,會不會有影響阿!!
程式碼只有一小段,小弟只是列出有問題的地方!!