上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Patrick Wu
註冊時間: 2007-01-03 文章: 223 來自: 台北市
第 1 樓
|
發表於: 星期一 三月 19, 2007 4:03 pm 文章主題: 大尺寸圖片瀏覽 |
|
|
參考各位前輩的資料:
我也寫了一個 大尺寸圖片 瀏覽 程式 看的是地圖 要將 地圖放大 看細部的內容 THISFORM.圖片內之CLICK 下此旨另 (點一下 將地圖放大 1.05 倍 )
THISFORM.圖片.WIDTH = THISFORM.圖片.WIDTH * 1.05
THISFORM.圖片.HEIGHT = THISFORM.圖片.HEIGHT * 1.05
問題來了 : 但地圖之 右側 及 下面 也同時會被擠掉 請問各位 解決方法
THISFORM.圖片.STRETCH = 0 或
THISFORM.圖片.STRETCH = 1
都試過了 => 無解 =>請各位指導 |
|
回頂端 |
|
|
garfield Site Admin
註冊時間: 2003-01-30 文章: 2157
第 2 樓
|
發表於: 星期一 三月 19, 2007 6:20 pm 文章主題: |
|
|
把圖片物件放在一個container,
利用圖片.top及.left 來調整圖片的位置,
這就是你要的功能. _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
|
wuno2001
註冊時間: 2007-02-09 文章: 56
第 3 樓
|
發表於: 星期一 三月 19, 2007 6:34 pm 文章主題: |
|
|
針對你用的方法,我試了一下,
一開始要把捲軸可視畫面衝到預期之最大(此例以6倍測試),
(ps:如果編成exe步驟1跟2都不用只要表單屬性 ScrollBars=3)
form1 的表單屬性 ScrollBars=3
1. 在form1 的 init 事件(或者activate 事件)
THISFORM.image1.WIDTH = THISFORM.image1.WIDTH * 6
THISFORM.image1.HEIGHT = THISFORM.image1.HEIGHT * 6
THISFORM.command1.tabindex=1
2. 在form1上設一個command1的gotfocus事件和click事件還原初始大小
THISFORM.image1.WIDTH = 初始WIDTH
THISFORM.image1.HEIGHT = 初始HEIGHT
3. image1 的 click 事件可作放大或縮小(自己決定)
Garfield大大的方法也不錯.
wuno2001 在 星期四 三月 22, 2007 10:33 am 作了第 2 次修改 |
|
回頂端 |
|
|
Patrick Wu
註冊時間: 2007-01-03 文章: 223 來自: 台北市
第 4 樓
|
發表於: 星期二 三月 20, 2007 9:17 am 文章主題: |
|
|
謝謝 garfield 的指導 我也試過 :
THISFORM.圖片.WIDTH = THISFORM.圖片.WIDTH * 1.05
THISFORM.圖片.HEIGHT = THISFORM.圖片.HEIGHT * 1.05
THISFORM.圖片.TOP = 0
THISFORM.圖片.LEFT = 0
將圖片以 左上角 為基準點 但放大後還是被擠掉
我再試試 wuno2001 (是新同學吧) 的方法 再向各位回報 感謝兩位的指導 |
|
回頂端 |
|
|
Patrick Wu
註冊時間: 2007-01-03 文章: 223 來自: 台北市
第 5 樓
|
發表於: 星期二 三月 20, 2007 9:23 am 文章主題: |
|
|
SORRY garfield ( 把圖片物件放在一個container ) 我忽略了這行字 我再試試 謝謝 garfield |
|
回頂端 |
|
|
wuno2001
註冊時間: 2007-02-09 文章: 56
第 6 樓
|
發表於: 星期二 三月 20, 2007 10:05 am 文章主題: |
|
|
補充一下,我的image1的初始WIDTH=241,
我的image1的初始HEIGHT=157,
當我一開始用*10好像超出了極限,所改用*6,
*9也不行,*8是OK的(捲軸才會正常出現).
極限是windows螢幕解析度的2倍 |
|
回頂端 |
|
|
Chris Lee
註冊時間: 2004-03-23 文章: 32
第 7 樓
|
發表於: 星期三 三月 21, 2007 11:35 am 文章主題: 試試看... |
|
|
public lo_form
lo_form = createobject("myform")
lo_form.show()
define class myform as form
caption = "JPG in IE"
autocenter = .t.
width = 500
height = 300
showwindow = 2
borderstyle = 2
maxbutton = .f.
minbutton = .f.
showtips = .t.
add object ie as ie
add object zoom_in as commandbutton with caption = "+", tooltiptext = "放大"
add object zoom_out as commandbutton with caption = "-", tooltiptext = "縮小"
add object reset as commandbutton with caption = "0", tooltiptext = "原大小"
procedure init
with this
.ie.width = .width - 30
.ie.height = .height
.ie.left = 0
.ie.top = 0
.ie.navigate("file://" + addbs(fullpath(curdir())) + "1.jpg")
do while .ie.readystate <> 4 or .ie.busy
enddo
with .ie.document.body.style
.borderStyle = "solid"
.borderColor = "dimgray"
.borderWidth = "1px"
endwith
with thisform.ie.document.images.item(0)
.setattribute("old_width", .width)
.setattribute("old_height", .height)
endwith
.zoom_in.top = 5
.zoom_in.left = .ie.left + .ie.width + 5
.zoom_in.width = 20
.zoom_out.top = .zoom_in.top + .zoom_in.height + 3
.zoom_out.left = .zoom_in.left
.zoom_out.width = 20
.reset.top = .zoom_out.top + .zoom_out.height + 3
.reset.left = .zoom_in.left
.reset.width = 20
endwith
endproc
procedure zoom_in.click
with thisform.ie.document.images.item(0)
.width = .width * 1.5
.height = .height * 1.5
endwith
endproc
procedure zoom_out.click
with thisform.ie.document.images.item(0)
.width = .width * 0.75
.height = .height * 0.75
endwith
endproc
procedure reset.click
with thisform.ie.document.images.item(0)
.width = .old_width
.height = .old_height
endwith
endproc
enddefine
define class ie as olecontrol
oleclass = "shell.explorer.2"
procedure refresh
nodefault
endproc
enddefine |
|
回頂端 |
|
|
Patrick Wu
註冊時間: 2007-01-03 文章: 223 來自: 台北市
第 8 樓
|
發表於: 星期六 三月 24, 2007 9:58 pm 文章主題: |
|
|
謝謝 Chris 的指導 程式 OK 謝謝 不盛感激 |
|
回頂端 |
|
|
Chris Lee
註冊時間: 2004-03-23 文章: 32
第 9 樓
|
發表於: 星期一 三月 26, 2007 8:28 am 文章主題: |
|
|
善用 IE,腰馬合一(syntech 語)。 8) |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 10 樓
|
發表於: 星期一 三月 26, 2007 9:24 am 文章主題: |
|
|
何謂 "腰馬合一" ? _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
Patrick Wu
註冊時間: 2007-01-03 文章: 223 來自: 台北市
第 11 樓
|
發表於: 星期三 三月 28, 2007 1:22 pm 文章主題: |
|
|
先謝謝 Chris Lee 的程式 解決目前的問題
但請問各位先進前輩的是 FORM 上的 捲軸 值是否有辦法測得
FORM.ScrollBars=3
THISFORM.HEIGHT = 400
THISFORM.image1.HEIGHT = 600 此時 捲軸 會出現 但值為多少
THISFORM.image1.HEIGHT = 800 捲軸 值 又為多少 600 及 800 捲軸 內 移動遊標 的高度是不一樣的 |
|
回頂端 |
|
|
Chris Lee
註冊時間: 2004-03-23 文章: 32
第 12 樓
|
發表於: 星期四 三月 29, 2007 8:40 am 文章主題: |
|
|
viewportleft, viewporttop 兩個屬性。
不過,VFP 的 ScrollBar...,不太能信任。尤其是有 AddObject() 之時。 |
|
回頂端 |
|
|
Patrick Wu
註冊時間: 2007-01-03 文章: 223 來自: 台北市
第 13 樓
|
發表於: 星期四 三月 29, 2007 2:44 pm 文章主題: |
|
|
謝謝 Chris 的指導 |
|
回頂端 |
|
|
weiyi07
註冊時間: 2007-03-16 文章: 10
第 14 樓
|
發表於: 星期四 三月 29, 2007 6:09 pm 文章主題: Re: 大尺寸圖片瀏覽 |
|
|
[FORM.ScrollBars=3
THISFORM.HEIGHT = 400
THISFORM.image1.HEIGHT = 600 此時 捲軸 會出現 但值為多少
THISFORM.image1.HEIGHT = 800 捲軸 值 又為多少 600 及 800 捲軸 內 移動
你可以修改成
THISFORM.Width = sysmet(1)- 7
THISFORM.Height = sysmet(2) -33
這樣 |
|
回頂端 |
|
|
Patrick Wu
註冊時間: 2007-01-03 文章: 223 來自: 台北市
第 15 樓
|
發表於: 星期四 三月 29, 2007 8:23 pm 文章主題: |
|
|
THISFORM.VIEWPORTHEIGHT = ?
THISFORM.VIEWPORTWIDTH = ?
THISFORM.VIEWPORTLEFT = ?
THISFORM.VIEWPORTTOP = ?
都測得出來 但為 唯讀
我想用於 THISFORM.容器.圖片.WIDTH 及 HEIGHT 放大時 改變 捲軸的最高值 以達到瀏覽全圖的功能
FORM.容器.圖片.WIDTH 及 HEIGHT 放大時 捲軸 無法像 Chris 的程式 會重置
TOP 及 LEFT 都用了 唉 我程度太差了 =>無解 =>繼續努力 謝謝各位 先用 Chris 的程式 謝謝 |
|
回頂端 |
|
|
|