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

stream write error

答題得分者是:st33chen
blue36sea
一般會員


發表:13
回覆:35
積分:23
註冊:2008-10-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-05-02 19:48:23 IP:222.240.xxx.xxx 訂閱
在delphi中,為了動態顯示我這裏又54張圖要進行切換,在此我使用54個image來分別保存一副圖,然後再定義一個imageI,在一個定時器裏來輪流將那54個image的圖片賦值給imageI,可是,在定義那54個image的過程中出現了stream write error,要強調的是我定義的這些image的大小還有圖片的大小都是一樣的,我在定義了六張image圖片後在定義後面的時候就開始跳出stream write error的錯誤,請問為什麽?
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-05-04 11:36:29 IP:122.116.xxx.xxx 未訂閱
您好,

可否用 imagelist 先定義 54 張圖
然後在 timer 中

用 imagelist1.getbitmap(ii, image1); // ii 為第 幾 張圖
去切換圖 ?
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
blue36sea
一般會員


發表:13
回覆:35
積分:23
註冊:2008-10-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-05-11 07:48:49 IP:202.197.xxx.xxx 訂閱
使用了imagelist是很方便,但是它跟image一樣,在添加bmp圖片到3、4幅就使電腦死機,我想應該是電腦內存是256,該程序跑不起來,但是我要將文件打包到別的機器上獨立運行,而且我的程序中添加了串口控件之類的,EXE文件並不能在別的機器上獨立運行,再者,我的那54幅圖片是采用從文件夾裏讀取的方式,所以我現在想打包文件,就必須先解決這些圖片的問題
blue36sea
一般會員


發表:13
回覆:35
積分:23
註冊:2008-10-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-05-11 07:53:58 IP:202.197.xxx.xxx 訂閱
請問,除了內存升級外,還有別的方法解決沒
恩,還有程序打包怎麽將安全協議添加進去?
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-05-12 00:33:42 IP:59.112.xxx.xxx 訂閱
錯誤的可能很多,沒看到程式和圖實在也很難猜,不過
既然圖已經成功放到image裡面, 指到固定圖裏會出錯, 那就換個方向做吧

在timer 裡面,輪流將要顯示的圖設定 top,left , visiable = true , 把不顯示的改成 visiable = false 畫面再repaint 一下不就可以
------
額有朝天骨,眼中有靈光
編輯記錄
小傑克 重新編輯於 2009-05-12 00:36:02, 註解 無‧
blue36sea
一般會員


發表:13
回覆:35
積分:23
註冊:2008-10-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-05-12 16:11:49 IP:202.197.xxx.xxx 訂閱
恩,那個問題也不知道怎麽出來的,現在最主要的問題是內存不夠,54張圖片都有桌面那麽大,所以需要的內存也就更高。開始一直納悶的是看能否有別的方法解決類,不過不管使用什麽方法,它都要求把所有的圖片都添加進程序中,否則無法打包。
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-05-12 19:40:27 IP:59.115.xxx.xxx 訂閱
我覺得可能是其他部分的錯誤, 我做了一個測試, 1280*720 bmp (一張2.63mb) 輪播,我也是把圖放在一個資料夾
timer interval = 100 , doublebuffered = true , 跑起來還是很順, 執行時佔用內存6-10mb 左右
圖檔太大所以我把測試程式貼在這 http://www.4shared.com/file/104875187/9034b93/test.html

程式內容, 放一個image , 一個timer
[code delphi]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls,StdCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
sl:TStringList;
iCount:integer;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function gGetAllFileName(sPath:String;const Filter:String='*.*'):TStringList;overload;
var sl:TStringList;
sr:TSearchRec;
begin
sl := TStringList.Create;
Result := sl;
if trim(sPath) = '' then exit;
if sPath[Length(sPath)] = '\' then Delete(sPath,Length(sPath),1);
if FindFirst(sPath '\' Filter,faAnyFile, sr) = 0 then
begin
repeat
sl.Add(sPath '\' sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
end;
sl.Sort;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Align := alClient;
Timer1.Interval := 100;
sl := gGetAllFileName('新資料夾','*.bmp'); // 你可以改去讀你的圖跑看看就知道
iCount:=0;
DoubleBuffered := true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Image1.Picture.LoadFromFile(sl.Strings[iCount]);
if iCount < (sl.Count-1) then
inc(iCount)
else
iCount := 0;
end;
end.

[/code]
------
額有朝天骨,眼中有靈光
編輯記錄
小傑克 重新編輯於 2009-05-12 19:45:34, 註解 無‧
系統時間:2024-05-16 11:47:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!