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

for迴圈裡物件名稱該怎麼改

答題得分者是:pcplayer99
yan7405
一般會員


發表:1
回覆:0
積分:0
註冊:2007-04-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-16 02:30:25 IP:218.169.xxx.xxx 訂閱
我是涉入DELPHI沒多久的新手~
想問一下~如果我要用FOR迴圈寫一個把圖放入16個以上的Image裡面~
那麼我該如何寫呢~

以下是原本程式

procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
buffer: array[0..10000] of byte; //設置接收緩衝區
len: integer;
ll: string;
b: tbitmap;
j: tjpegimage;


begin
if c = 0 then //C為服務端發送的字節數,如果為0表示為尚未開始圖像接收
begin
ll := socket.ReceiveText;
c := strtoint(ll); //設置需接收的字節數
clientsocket1.Socket.SendText('okok'); //通知服務端開始發送圖像
end else
begin //以下為圖像數據接收部分
len := socket.ReceiveLength; //讀出包長度
socket.ReceiveBuf(buffer, len); //接收數據包並讀入緩衝區內
m.Write(buffer, len); //追加入流M中
if m.Size >= c then //如果流長度大於需接收的字節數,則接收完畢
begin
m.Position := 0;
b := tbitmap.Create;
j := tjpegimage.Create;
try
j.LoadFromStream(m); //將流M中的數據讀至JPG圖像對像J中
b.Assign(j); //將JPG轉為BMP

Image1.Picture.Bitmap.Assign(b); //分配給image1元件

// SaveImage1 := 'C:\' 'saveimage1\' DateTime '.jpg';
j.Assign(b);
j.CompressionQuality := 70;
j.Compress;
finally //以下為清除工作
b.free;
j.free;
clientsocket1.Active := false;
clientsocket1.Active := true;
m.Clear;
c := 0;
end;
end;
end;
end;

我試過很多方法~~也找過很多資料~但沒有找到該如何寫~
或許我的問題很笨~但如果有方法或是有些相關的書請告訴我~感激不盡
esp_pzj
初階會員


發表:32
回覆:70
積分:40
註冊:2007-02-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-16 08:39:00 IP:59.120.xxx.xxx 訂閱
參考這篇吧!
這是我之前所提出來的問題

http://delphi.ktop.com.tw/board.php?cid=30&fid=71&tid=87653
------
學藝不精 謝多多指教
pcplayer99
尊榮會員


發表:142
回覆:738
積分:591
註冊:2003-01-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-22 17:20:33 IP:59.40.xxx.xxx 訂閱
Image1.Picture.Bitmap.Assign(b); //分配給image1元件

这里把 Image1 换掉就可以了。当然不是换名字这么笨。

假设你有 Image1, Image2, Image3 ......

那么,你可以这样获得它:

<textarea cols="60" rows="10" class="delphi" name="code"> procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin for i := 0 to Self.ComponentCount -1 do begin if Self.Components[i] is TImage then begin Label1.Caption := TImage(Self.Components[i]).Name; end; end; end; 按照上述例子,你的要求就好办了。 还可以用 TObjectList 来存放多个 Image1, Image2,然后: var AImage: TImage; begin for i := 0 to FMyObjectList.Count - 1 do begin AImage := TImage(FMyObjectList.Items[i]); AImage.Assign(YourPicture); end; end; </textarea>
系統時間:2017-10-24 12:09:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!