關於新稱圖片(Image)的程式 |
尚未結案
|
kj68215
初階會員 發表:47 回覆:91 積分:27 註冊:2003-08-09 發送簡訊給我 |
小弟寫了一個小程式..
是有關於新稱電腦台數..
簡單來說...就是當按下Button後..
他會出現InputBox..
這時隨便輸入名稱(ex: 01、02...等)
則就會出現AddPC.bmp以及該台的編號..
請問該怎麼寫呢? 若還是不瞭解小弟再說啥的話..
那小弟則上傳了demo程式...
下載看看囉!^^
http://delphi.ktop.com.tw/loadfile.php?TOPICID=11654568&CC=260652 -----------------------
請多多指教啦!!^^
------
----------------------- 請多多指教啦!!^^ |
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
給你一個範例,參考看看
改自你的那個小程式:
void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString PCName; PCName=InputBox("新增","輸入電腦名稱 ",""); TImage *PC_Image = new TImage(Form1); PC_Image->Parent = Form1; PC_Image->Left = StrToInt(InputBox("X","輸入電腦image X座標 ","1")); PC_Image->Top = StrToInt(InputBox("Y","輸入電腦image Y座標 ","1")); PC_Image->Picture->LoadFromFile("AddPc.bmp"); PC_Image->Width = 32; PC_Image->Height = 32; PC_Image->Stretch = true; TLabel *PC_Label = new TLabel(Form1); PC_Label->Parent = Form1; PC_Label->Left = PC_Image->Left; PC_Label->Top = PC_Image->Top PC_Image->Height; PC_Label->Caption = PCName; }國泰平安 |
kj68215
初階會員 發表:47 回覆:91 積分:27 註冊:2003-08-09 發送簡訊給我 |
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
先把上篇程式碼改一下,看一下上篇綠色部份,
增加mouse的事件, 因為要寫mouse的事件,如果覺得麻煩,可以先add一個Image元件,
拿這個元件來寫mouse事件,(因為bcb會幫你寫好一些東西,會方便很多)
寫好之後再把這個Image元件delete掉就行~ 程式碼:
bool Moving=false; //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { Moving=true; } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(Moving) { ((TImage*)Sender)->Top =Y-((TImage *)Sender)->Height/2 ; ((TImage*)Sender)->Left =X-((TImage*)Sender)->Width/2 ; Moving=false; } }這是移動圖片,如果要連Label一起動的話,自己加上,只是依樣畫葫蘆而已~ 有這個「基本型」,你就可以在上面自行做變化 自己試試 國泰平安 |
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
這是增加可以讓Image隨著mouse游標拉動而移動,
主要精神是利用「一個panel」來讓「全部的Image」當做移動的媒介,
如果你要連Label也跟著動的話,自己試試看吧~
動一下腦筋,其實這不難
. class="code">
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include
#include國泰平安 |
kj68215
初階會員 發表:47 回覆:91 積分:27 註冊:2003-08-09 發送簡訊給我 |
gemi0305兄
你的code我Make或是Build都OK...
但是run的時候出現了"Project Project1.exe raised exception EClassNotFounf with message 'Class TImage not found'.Process stopped.Use Step or Run to continue. "
後來我去改路徑..(原本AddPC.bmp是放在D:\Add_Pc\ 子目錄裡)
.cpp裡改成 PC_Image->Picture->LoadFromFile("D:/add_pc/AddPc.bmp");
結果還是一樣run不出來耶!!#_#'
對了,若在Form1再增加"刪除"、"儲存"(儲存成 .dat檔)的Button...
在網站上有現成的作品可以參考嗎?! -----------------------
請多多指教啦!!^^
------
----------------------- 請多多指教啦!!^^ |
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
引言: gemi0305兄 你的code我Make或是Build都OK... 但是run的時候出現了"Project Project1.exe raised exception EClassNotFounf with message 'Class TImage not found'.Process stopped.Use Step or Run to continue. " 後來我去改路徑..(原本AddPC.bmp是放在D:\Add_Pc\ 子目錄裡) .cpp裡改成 PC_Image->Picture->LoadFromFile("D:/add_pc/AddPc.bmp"); 結果還是一樣run不出來耶!!#_#' 對了,若在Form1再增加"刪除"、"儲存"(儲存成 .dat檔)的Button... 在網站上有現成的作品可以參考嗎?! >>< face="Verdana, Arial, Helvetica"> 把紅色的地方改成這個試試~ PC_Image->Picture->LoadFromFile("D://add_pc//AddPc.bmp"); bcb中字串的"/"要用"//", 你說的存成.dat檔? 是想存些什麼資料? 國泰平安 |
kj68215
初階會員 發表:47 回覆:91 積分:27 註冊:2003-08-09 發送簡訊給我 |
oh...原來是要用"//"
那書本真該死.
竟然是教"/"....
儲存成. href="http://toget.pchome.com.tw/intro/business_suite/12578.html">http://toget.pchome.com.tw/intro/business_suite/12578.html 安裝好後..
開始/程式集/Smart Cyber Cafe/Register&Ssttings
裡面有一個"電腦名稱位置設定".... ↓(儲存成.dat檔的地圖,我指的就是這個囉!!)
C:\Program Files\Wameng\Smart Cyber Cafe\samplemap -----------------------
請多多指教啦!!^^
------
----------------------- 請多多指教啦!!^^ |
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
這味不知如何
試看看
【Delphi】【發表】模擬網咖管理畫面
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28591 何必捨近求遠 看看有幫助
會員代號: hahalin http://delphi.ktop.com.tw/pop_profile.asp?mode=display&id=658
會員等級: 版主
的代表作之一 *********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together!
希望能大家敞開心胸,將知識寶庫結合一起 發表人 - jackkcg 於 2003/09/24 20:21:15
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
kj68215
初階會員 發表:47 回覆:91 積分:27 註冊:2003-08-09 發送簡訊給我 |
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
|
kj68215
初階會員 發表:47 回覆:91 積分:27 註冊:2003-08-09 發送簡訊給我 |
gemi0305兄,您的code小弟大部分都看得懂了!!
也學習到另一種命名的方法....... 小弟嘗試Image+Label一起移動,code的修改如下 ↙
PC_Label->OnMouseUp = &Image1MouseUp; PC_Label->OnMouseDown = &Image1MouseDown; PC_Label->OnMouseMove = &Image1MouseMove;Label是可以移動了..但是沒辦法跟Image一起移動. 所以又試了改其他code部分,如以下.. TForm1::Image1MouseDown、Up部分: panel->Left = ((TImage*) (TLabel*)Sender)->Left-2; panel->Top = ((TImage*) (TLabel*)Sender)->Top-2; panel->Height = ((TImage*) (TLabel*)Sender)->Height 15; panel->Width = ((TImage*) (TLabel*)Sender)->Width 4; panel->Visible = true; ::SetCapture(panel->Handle); ((TImage*) (TLabel*)Sender)->Parent = panel; ((TImage*) (TLabel*)Sender)->Left = 2; ((TImage*) (TLabel*)Sender)->Top = 2;一樣可以run,但是Label還是沒辦法跟Image一起移動!#_#" gemi0305兄,可否可一點提示呢?? 我盡量想辦法去嘗試、解決! thx. 對了,若寫入一個"移除"與"儲存地圖"的 > ----------------------- 請多多指教啦!!^^
------
----------------------- 請多多指教啦!!^^ |
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
程式照樣修改,就可以一起移動了,
另外你說的"移除"和"儲存"的button,
建議你再發起另一個問題吧,因為這個問題解決的方法有很多種~
而且有點離題了。
#include程式有問題再來討論吧 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |