程式看得懂的檔案 |
尚未結案
|
hct47
一般會員 發表:34 回覆:15 積分:9 註冊:2004-04-23 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
引言: 我在程式裡有24張圖(TBitmap)以及24個字串(string),我要將他們存成一個檔,待我下次直接叫出這個檔案可以使用,該怎麼做才好?(total bmp count)(bmp0 size)(bmp data)(bmp1 size)(bmp1 data)........(bmpn size)(bmpn data)(total string count)(string1 length)(string1 data)....(stringn length)(stringn) 用這個方法存檔。你就可以取出並將資料配給 bmp and string 了 |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
參考這篇, 敎你怎樣將圖片,字串 放入 RES File
http://delphi.ktop.com.tw/topic.php?topic_id=18030 參考這篇及整個章節, 看 Windows 是如何處理 RC 的檔案
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tools/tools/rcdata_resource.asp 可以用 LoadBitmap 把圖片由 RES 讀出 這篇提供大概的製作方式及實作
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=75327
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
再補充最近的文章, 敎你如何製作 Resource DLL
http://delphi.ktop.com.tw/topic.php?topic_id=73755
|
hct47
一般會員 發表:34 回覆:15 積分:9 註冊:2004-04-23 發送簡訊給我 |
Dear 黑暗破壞神: 我不懂你的意思耶,可以再說清楚一點嗎?謝謝... <>< face="Verdana, Arial, Helvetica">引言:
(total bmp count)(bmp0 size)(bmp data)(bmp1 size)(bmp1 data)........(bmpn size)(bmpn data)(total string count)(string1 length)(string1 data)....(stringn length)(stringn) 用這個方法存檔。你就可以取出並將資料配給 bmp and string 了 另外,感謝各位熱心回應,可能我的問題沒有說清楚,我再說清楚一點...
我的軟體可以叫出圖形bmp檔(最多24張圖),並在圖形旁邊可以用文字說明,
目前我做到可以列印的功能,但是這個程式關閉後,下次要在列印就要再重新拉圖,而且每個人的需求不同,所以我的目的是希望建立像word的類似功能一樣,在軟體按下存檔,就存下選的圖跟註明的文字(成一個檔案),待下次再叫出這個檔案,可以供使用者列印... 發表人 - hct47 於 2005/08/01 14:43:30
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
引言: (total bmp count)(bmp0 size)(bmp data)(bmp1 size)(bmp1 data)........(bmpn size)(bmpn data)(total string count)(string1 length)(string1 data)....(stringn length)(stringn)檔案內容是這樣存的。 全部的 bmp 數,(第一個 bmp 所佔的空間, bmp 的資料),....... 全部數串數,(第一個字串所佔空間,字串內容)....... 括號處重複。 這樣你要讀出時。 讀到第一個資料是 共有 N 個 bmp 就知道要去準備 N 個 bmp 的陣列。 然後用個 loop 就可以讀入 全部的 bmp data 同樣的讀法再讀出 string 即可 |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
access檔案, *.mdb
可以放字串, 也可以放影像檔及memo
夠好用的了吧
(玩了一個下午的TIdEncoderMIME; TIdDecoderMIME轉來轉去,實在好笑)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,jpeg, ExtDlgs, IdCoder, IdCoder3to4, IdCoderMIME, IdBaseComponent; type TForm1 = class(TForm) Image1: TImage; Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; OpenPictureDialog1: TOpenPictureDialog; IdEncoderMIME1: TIdEncoderMIME; IdDecoderMIME1: TIdDecoderMIME; Label1: TLabel; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject); begin if OpenPictureDialog1.Execute then begin Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); end; end; procedure TForm1.Button1Click(Sender: TObject); var f : TmemoryStream; begin f := TmemoryStream.Create; try image1.Picture.Graphic.SavetoStream(f); f.Position := 0; IdEncoderMIME1 Memo1.Lines.Text := IdEncoderMIME1.Encode(f); label1.caption := inttostr(length(Memo1.Lines.Text)); finally f.Free; end; end; procedure TForm1.Button2Click(Sender: TObject); var f : TmemoryStream; begin f := TmemoryStream.Create; try IdDecoderMIME1.DecodeToStream(Memo1.Lines.Text,f); f.Position := 0; image1.Picture.Graphic.LoadFromStream(f); finally f.Free; end; end; end.努力會更接近成功
------
努力會更接近成功 |
hct47
一般會員 發表:34 回覆:15 積分:9 註冊:2004-04-23 發送簡訊給我 |
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
|
hct47
一般會員 發表:34 回覆:15 積分:9 註冊:2004-04-23 發送簡訊給我 |
|
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
hct47
一般會員 發表:34 回覆:15 積分:9 註冊:2004-04-23 發送簡訊給我 |
Dear all:
不好意思,一直大擾大家,我有用TFilestream試過了字串,可以使用,但是我用Tbitmap時,好像都存不到圖檔耶,底下是我的程式碼:
procedure TForm1.SaveFile1Click(Sender: TObject); var ms:Tmemorystream; i,j,pictC:integer; FileStream : TFileStream; FileName : String; begin Filename:='D:\datdata\data.hct'; FileStream:=TFileStream.create(FileName,fmCreate); for i:=0 to 10 do begin FileStream.Write(selpic.SelectPic[i],sizeof(selpic.SelectPic[i])); end; FileStream.Free ; //selpic.SelectPic[i]是 TBitmap陣列 end; procedure TForm1.LoadFile1Click(Sender: TObject); var ms:Tmemorystream; filestream:Tfilestream; Filename:string; i:integer; begin Filename:='D:\datdata\data.hct'; FileStream :=TFileStream.Create(FileName,fmopenread); FileStream.Position :=0; for i:=0 to 10 do begin selpic.SelectPic[i]:=Tbitmap.Create; end; FileStream.Read(selpic.SelectPic,Sizeof(selpic.SelectPic)); image0.Canvas.StretchDraw(Rect(0,0,image0.Width,image0.Height),selpic.SelectPic[0]); image1.Canvas.StretchDraw(Rect(0,0,image1.Width,image1.Height),selpic.SelectPic[1]); FileStream.Free ; end;image0和image1的圖檔show出來的圖都是白的...沒東西 |
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
hct47
一般會員 發表:34 回覆:15 積分:9 註冊:2004-04-23 發送簡訊給我 |
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
昨天我就知d6沒有IdDecoderMIME
所以馬上裝d7來試試 我又玩了一個下午, 找了好多資料 以下的碼支持bmp及jpeg < class="code">
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,jpeg, ExtDlgs, IdAntiFreezeBase,
IdAntiFreeze, IdCoder, IdCoder3to4, IdCoderMIME, IdBaseComponent; type
TForm1 = class(TForm)
Image1: TImage;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
OpenPictureDialog1: TOpenPictureDialog;
Label1: TLabel;
Image2: TImage;
IdDecoderMIME1: TIdDecoderMIME;
IdEncoderMIME1: TIdEncoderMIME;
IdAntiFreeze1: TIdAntiFreeze;
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject);
var
bmp : TBitmap;
jpg : TJpegimage;
Ratio : double;
NewH, NewW : integer;
begin
if OpenPictureDialog1.Execute then
begin
if Uppercase(ExtractFileExt(OpenPictureDialog1.filename)) = '.JPG' then
begin
jpg := TJpegimage.create;
bmp := TBitmap.create;
try
jpg.LoadFromFile(OpenPictureDialog1.filename);
bmp.Assign(jpg);
bmp.Dormant;
bmp.FreeImage; // Free up Memory.
image1.Picture.Assign(bmp);
finally
bmp.Free;
jpg.Free;
end;
end
else if Uppercase(ExtractFileExt(OpenPictureDialog1.filename)) = '.BMP' then
begin
image1.Picture.LoadFromFile(OpenPictureDialog1.filename);
end;
end;
end; procedure TForm1.Button1Click(Sender: TObject);
var
f : TmemoryStream;
begin
f := TmemoryStream.Create;
try
image1.Picture.bitmap.SavetoStream(f);
f.Position := 0;
Memo1.Lines.Text := IdEncoderMIME1.Encode(f);
label1.caption := inttostr(length(Memo1.Lines.Text));
finally
f.Free;
end;
end; procedure TForm1.Button2Click(Sender: TObject);
var
f : TmemoryStream;
begin
f := TmemoryStream.Create;
try
IdDecoderMIME1.DecodeToStream(Memo1.Lines.Text,f);
f.Position := 0;
image2.Picture.bitmap.LoadFromStream(f);
finally
f.Free;
end;
end; end. 努力會更接近成功
------
努力會更接近成功 |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
剛才到深度歷險找到這個,很像你要的東東
下載< href="http://www.vclxx.org/DELPHI/D32FREE/PAKIT.ZIP">http://www.vclxx.org/DELPHI/D32FREE/PAKIT.ZIP
網址http://www.vclxx.org/DELPHI/AAAT1029.HTM
PAKIT.ZIP 一組能將多個檔案打包成為單一檔案的類別 ( 0.1 版,附原始程式碼 ) ,作者 : Sean Mathews。 畫面是用d7編譯的
< src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=23810236&CC=532504"> 努力會更接近成功
------
努力會更接近成功 |
hct47
一般會員 發表:34 回覆:15 積分:9 註冊:2004-04-23 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |