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

關於怎樣動態修改TImage屬性並保存

尚未結案
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-24 12:34:30 IP:218.16.xxx.xxx 未訂閱
我現在想在程式運行時動態修改TIMAGE的屬性,拖拉IMAGE能與設計期一樣,自由拉伸,圖片能以原始比列縮放,並能保存,下次運行程式時,我上次設計的樣式
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-24 13:24:57 IP:218.16.xxx.xxx 未訂閱
移動元件請參考: hahalin 版主的 網咖管理金剛組合版 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28622 修改屬性請參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30231 (TImage 沒有 Handle 不能被該範例自動偵察但修改部份相同) 儲存讀取部份請參考 : http://delphi.ktop.com.tw/topic.php?topic_id=18378 最後有 ComponentToStr 及 StrToComponent 函數 若由更動態一些,請自行搜尋 "RTTI" 的資料看看
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-24 19:57:59 IP:61.155.xxx.xxx 未訂閱
我現在想在程式運行時動態修改TIMAGE的屬性,拖拉IMAGE能與設計期一樣,自由拉伸,圖片能以原始比列縮放,並能保存,下次運行程式時,我上次設計的樣式 --------------------------------------------- 简单的方法实现: //拖动、拉伸 procedure TForm1.FormCreate(Sender: TObject); begin image1.DragMode := dmAutomatic; image1.DragKind :=dkDock; end; //关于保存位置 这个方法比较多,你可以建立INI文件保存拖动后的位置,下次在FormCreate时候再设置IMAGE的位置,就可以了。    小弟浅见,供参考!!!        风花雪月 e梦情缘
------
风花雪月 e梦情缘
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-24 20:18:10 IP:218.16.xxx.xxx 未訂閱
谢谢两位大虾的参与!! 关于“RTTI”我会去好好研究的,到时遇到问题还请大侠指教!! 我还想问问如何使TIMAGE象设计时那样,随意拉大缩小!!!
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-24 20:24:27 IP:61.155.xxx.xxx 未訂閱
xiaoning79627 兄: 我上面的小技巧就可以实现的。TRY SEE...    风花雪月 e梦情缘
------
风花雪月 e梦情缘
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-24 20:25:32 IP:218.16.xxx.xxx 未訂閱
引言: 我現在想在程式運行時動態修改TIMAGE的屬性,拖拉IMAGE能與設計期一樣,自由拉伸,圖片能以原始比列縮放,並能保存,下次運行程式時,我上次設計的樣式 --------------------------------------------- 简单的方法实现: //拖动、拉伸 procedure TForm1.FormCreate(Sender: TObject); begin image1.DragMode := dmAutomatic; image1.DragKind :=dkDock; end; //关于保存位置 这个方法比较多,你可以建立INI文件保存拖动后的位置,下次在FormCreate时候再设置IMAGE的位置,就可以了。 小弟浅见,供参考!!! 风花雪月 e梦情缘
我不想它是浮动停靠啊!! 只想显示图片!!
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-25 07:54:41 IP:61.155.xxx.xxx 未訂閱
//使TIMAGE象设计时那样,随意拉大缩小!!!    unit Unit1;    interface    uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, jpeg, ExtCtrls;    type   TForm1 = class(TForm)     Image1: TImage;     procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;       Shift: TShiftState; X, Y: Integer);     procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,       Y: Integer);     procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;       Shift: TShiftState; X, Y: Integer);   private     { Private declarations }   public     { Public declarations }   end;    var   Form1: TForm1;   resized,down:boolean;     x0,y0:integer; implementation    {$R *.dfm}    procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;   Shift: TShiftState; X, Y: Integer);    begin   x0:=x;   y0:=y;   if (x>Image1.Width-10)or(y>image1.Height-10) then begin     Image1.Cursor:=crSize;     resized:=true;   end else begin     Image1.Cursor:=crDefault;     down:=TRUE;   end; end;    procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,   Y: Integer); begin   if x>Image1.Width-10 then begin     Image1.Cursor:=crSize;   end else begin     Image1.Cursor:=crDefault;   end;   if down then begin     Image1.Left:=Image1.Left+x-x0;     Image1.top:=Image1.top+y-y0;   end;   if resized then begin     Image1.Width:=Image1.Width+x-x0;     Image1.Height:=Image1.Height+y-y0;     x0:=x;y0:=y;   end; end;    procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;   Shift: TShiftState; X, Y: Integer); begin   down:=False;   resized:=False; end;    end.    风花雪月 e梦情缘
------
风花雪月 e梦情缘
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-05-25 09:34:35 IP:210.3.xxx.xxx 未訂閱
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-05-25 10:18:55 IP:218.16.xxx.xxx 未訂閱
引言: //使TIMAGE象设计时那样,随意拉大缩小!!! unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; resized,down:boolean; x0,y0:integer; implementation {$R *.dfm} procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin x0:=x; y0:=y; if (x>Image1.Width-10)or(y>image1.Height-10) then begin Image1.Cursor:=crSize; resized:=true; end else begin Image1.Cursor:=crDefault; down:=TRUE; end; end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if x>Image1.Width-10 then begin Image1.Cursor:=crSize; end else begin Image1.Cursor:=crDefault; end; if down then begin Image1.Left:=Image1.Left x-x0; Image1.top:=Image1.top y-y0; end; if resized then begin Image1.Width:=Image1.Width x-x0; Image1.Height:=Image1.Height y-y0; x0:=x;y0:=y; end; end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin down:=False; resized:=False; end; end. 风花雪月 e梦情缘
多谢风花雪月兄的回帖,小弟还想问问,能不能用别的方式保存其属性,再次感谢
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-05-25 10:30:30 IP:61.155.xxx.xxx 未訂閱
多谢风花雪月兄的回帖,小弟还想问问,能不能用别的方式保存其属性,再次感谢 ------------------------------------------------------------------ 你可以使用INI文件方式、注册表方式、数据库方式、自身存储方式等保存。    自身存储方式,这种方式较难;可以使用流的形式,将IMAGE属性资料保存在可执行文件的尾部(有点象病毒)。    供参考!    风花雪月 e梦情缘
------
风花雪月 e梦情缘
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-05-25 10:37:59 IP:218.16.xxx.xxx 未訂閱
引言: 多谢风花雪月兄的回帖,小弟还想问问,能不能用别的方式保存其属性,再次感谢 ------------------------------------------------------------------ 你可以使用INI文件方式、注册表方式、数据库方式、自身存储方式等保存。 自身存储方式,这种方式较难;可以使用流的形式,将IMAGE属性资料保存在可执行文件的尾部(有点象病毒)。 供参考! 风花雪月 e梦情缘
具体怎样实现,能给个例子吗??
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-05-25 11:04:04 IP:61.155.xxx.xxx 未訂閱
对INI文件操作,参见: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30363 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31053    原码: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31062    风花雪月 e梦情缘
------
风花雪月 e梦情缘
xiaoning79627
初階會員


發表:46
回覆:60
積分:26
註冊:2002-11-10

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-05-25 11:50:32 IP:218.16.xxx.xxx 未訂閱
引言: 对INI文件操作,参见: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=30363 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31053 原码: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31062 风花雪月 e梦情缘
用流的形式该怎样做啊!!
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#14 引用回覆 回覆 發表時間:2003-05-25 13:06:55 IP:61.155.xxx.xxx 未訂閱
关于这个问题,已经超出本题的范围。请另外开设问题。    如果需要这方面的资料,可以到网上SEARCH一下。    风花雪月 e梦情缘
------
风花雪月 e梦情缘
系統時間:2024-05-16 17:20:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!