全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1460
推到 Plurk!
推到 Facebook!

小畫家復原的功能

缺席
cake5102000
一般會員


發表:3
回覆:3
積分:1
註冊:2011-05-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-05-01 20:04:50 IP:218.166.xxx.xxx 訂閱
我做了一個類似小畫家的程式..我碰到一個問題
例如我在Image畫了四條線,我要用ㄧ個button鍵當作復原的功能,還原成三條線,這樣的復原功能程式要怎麼寫呢?用undo?還要用陣列?各位高手教教我吧~!
HikaruGo
中階會員


發表:22
回覆:69
積分:88
註冊:2007-12-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-05-02 11:11:43 IP:111.254.xxx.xxx 訂閱
印像中可以使用Memento,去實現. undo 功能
cake5102000
一般會員


發表:3
回覆:3
積分:1
註冊:2011-05-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-05-02 19:08:00 IP:61.231.xxx.xxx 訂閱
標頭檔
bool MDown;
int OldX,OldY;

//-------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int x1,y1,x2,y2;
x1=10;
y1=10;
x2=100;
y2=100;
Image1->Canvas->MoveTo(x1,y1);
Image1->Canvas->LineTo(x2,y2);
}
//--------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
MDown=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
if(MDown==true)
{ Image1->Canvas->MoveTo(OldX,OldY);
Image1->Canvas->LineTo(X,Y);
OldX=X;
OldY=Y;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
MDown=false;
DoubleBuffered=true;
}



你說的那個語法要怎麼使用呢??

系統時間:2024-11-21 23:55:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!