線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1335
推到 Plurk!
推到 Facebook!

在form上画图形

尚未結案
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-28 09:00:46 IP:202.97.xxx.xxx 未訂閱
是这样:数据来自数据库,比如有一个单位就画一个方形 ,我是直接用canvas 画到form上(已最大化),但现在单位增多,最大化的form 已画不下下,怎么办呢?我试用了form的scroll,但取得的坐标0,0,都是屏幕的坐标,不是form的,怎么办呢?我把图贴出来就更明白了 ——————————— 抓住快乐!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-28 10:27:10 IP:210.65.xxx.xxx 未訂閱
Hi: 看這圖很像是公司內部門組織圖,可以考慮用 TreeView 來作 -------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-28 10:59:14 IP:202.97.xxx.xxx 未訂閱
规定得很死,就得这种结构。 可以归结成这样的问题:form上有滚动条,我想在form的坐标上画图,而不是屏幕的坐标上,问题是怎样得到form的坐标。这样就可以画下了,而不是象现在的重叠,如图的右上侧 ——————————— 抓住快乐!
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-28 11:28:28 IP:211.23.xxx.xxx 未訂閱
我之前做過類似的東西. 要在畫面上顯示一張很大的圖. 我當時的方法是建立一個虛擬座標系, 然後再用 View 的概念將要顯示的部份畫在螢幕上. 不過以你的狀況來看.... 建立一張大的 Bitmap 放在 FORM 上, 然後在 BMP 的 CANVAS 上畫即可. ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-28 13:53:22 IP:202.97.xxx.xxx 未訂閱
关键是: 最大化的表单显示不下,被隐藏的因为托动就看不到(因为没有form.paint)但若paint,就涉及坐标的转换,怎样转换屏幕坐标和form坐标。 ——————————— 抓住快乐!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-28 14:10:04 IP:210.65.xxx.xxx 未訂閱
Hi:    設定 Form 的寬度與高度,並設定捲軸範圍
procedure TForm1.FormCreate(Sender: TObject);
begin
    Self.Width := 2000;
    Self.Height := 3000;
    Self.HorzScrollBar.Visible := True;
    Self.HorzScrollBar.Range := 2000;
    Self.VertScrollBar.Visible := True;
    Self.VertScrollBar.Range := 3000;
end;
-------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-29 11:51:22 IP:218.32.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41232 重複發文 ! seagal2222 你好: 一定要畫在 Form 上嗎 ? 放個有 TCanvas Property 的 VCL (如 TImage), 不行嗎 ? http://delphi.ktop.com.tw/topic.php?TOPIC_ID=41206
jason_cyl329
高階會員


發表:123
回覆:155
積分:105
註冊:2003-05-26

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-12-01 11:06:03 IP:61.218.xxx.xxx 未訂閱
seagal2222你好, 按照你的做法,你已經將圖繪出來了,指示剩下座標的問題;首先你的範圍一定要設定好,HorzScrollBar->Range & VertScrollBar->Range 接著就用她們的position的屬性來做相對的座標兌換, ex,你的 Form->Width = 100;Form->Height = 100; HorzScrollBar->Position = 50; 這時,在Form的右邊就應該要出現你座標150的圖形 Canvas->TextOut(原座標-HorzScrollBar->Position,Y,".....); 寫在OnPaint內,這時,不管你的ScrollBar怎麼移動,都能看到相關座標的圖形!!
seagal2222
一般會員


發表:24
回覆:48
積分:14
註冊:2003-03-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-12-03 08:35:29 IP:202.97.xxx.xxx 未訂閱
to mickey 当然可以,但我的图浏览后,还有打印,我可以直接调form.print Tinmage可以吗?另外,用Tinmage可以解决我提的问题吗? ——————————— 抓住快乐!
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-12-03 09:49:25 IP:218.163.xxx.xxx 未訂閱
引言: to mickey 当然可以,但我的图浏览后,还有打印,我可以直接调form.print Tinmage可以吗?另外,用Tinmage可以解决我提的问题吗?
1. 原問題, 我看不出有 Print 的需求. 2. TImage 當然可以打印, 節錄一段 Help :
procedure TForm1.Button1Click(Sender: TObject);    begin
  with Printer do
  begin
    BeginDoc;
    Canvas.TextRect(Rect(200,200,PageWidth-200,PageHeight-200),
                    200, 200, Memo1.Lines.Text);
    EndDoc;
  end;    end;
記的要 use Printers Unit.
piemomoka
一般會員


發表:8
回覆:10
積分:3
註冊:2003-12-18

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-12-19 09:56:27 IP:157.16.xxx.xxx 未訂閱
我也有類似的問題 我將PaintBox設置在ScrollBox中, Run了之後,按下Button會在PaintBox中畫圖表, 圖表的一部分因為PaintBox的尺寸比ScrollBox大,所以看不到 拉動ScrollBar,或是切換到別的視窗在切換回來 應該要能看到其他的部分 但是PaintBox卻變成空白的,必須再按Button才能看到。 後來我在Object Inspect PaintBox的Event OnPaint右邊的空格中加入Button1Click並執行程式後 雖然這樣移動ScrollBar圖也不會消失 但是變成不用按Button,圖一開始自己就跑出來>_< 麻煩各位前輩告訴我該怎麼作好嗎?謝謝!
系統時間:2024-05-08 10:29:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!