線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2258
推到 Plurk!
推到 Facebook!

回傳array of string的問題

答題得分者是:jow
chkkevin
一般會員


發表:34
回覆:64
積分:19
註冊:2007-05-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-02-12 20:35:36 IP:218.254.xxx.xxx 訂閱
先問問怎樣寫回傳array of string的問題

因為不能像這樣:
function ret_arr():array of string
那麼應該怎樣寫呢?
------
獨學無友則孤陋寡聞,相識滿天下能知天下事
小弟是來自香港的~~多多指教
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-02-13 10:27:08 IP:123.193.xxx.xxx 訂閱
試試~

[code delphi]
unit fMain;

interface

uses
Classes, Controls, StdCtrls, SysUtils, Forms;

type

TArrayOfString = array of string;

TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
public
function GetArrayOfString(Len: Integer): TArrayOfString; overload;
function GetArrayOfString(var A: TArrayOfString; Len: Integer): Boolean; overload;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.GetArrayOfString(Len: Integer): TArrayOfString;
var
I: Integer;
begin
Result := nil;
if Len > 0 then
begin
SetLength(Result, Len);
for I := 0 to Length(Result)-1 do
Result[I] := Format('%5.5d', [I]);
end;
end;

function TForm1.GetArrayOfString(var A: TArrayOfString; Len: Integer): Boolean;
begin
A := GetArrayOfString(Len);
Result := A <> nil;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
A: TArrayOfString;
begin
A := GetArrayOfString(10);
if A <> nil then
try
ListBox1.Clear;
for I := 0 to Length(A)-1 do
ListBox1.Items.Add(A[I]);
finally
A := nil;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
A: TArrayOfString;
begin
if GetArrayOfString(A, 10) then
try
ListBox1.Clear;
for I := 0 to Length(A)-1 do
ListBox1.Items.Add(A[I]);
finally
A := nil;
end;
end;

end.

[/code]
編輯記錄
jow 重新編輯於 2008-02-14 09:31:48, 註解 無‧
chkkevin
一般會員


發表:34
回覆:64
積分:19
註冊:2007-05-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-02-13 23:25:04 IP:218.254.xxx.xxx 訂閱
還有一個問題,如果是將這個回傳值,給另一個form 的array of string又要怎樣做呢?
------
獨學無友則孤陋寡聞,相識滿天下能知天下事
小弟是來自香港的~~多多指教
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-02-14 09:22:18 IP:210.66.xxx.xxx 訂閱
你可以將GetArrayOfString()提為公用的函式, 
只要uses該單元即可叫用了...
max5020
資深會員


發表:29
回覆:277
積分:321
註冊:2003-06-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-02-14 16:20:51 IP:59.125.xxx.xxx 訂閱
建議使用TStrings
取代Array of String!!
chkkevin
一般會員


發表:34
回覆:64
積分:19
註冊:2007-05-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-02-14 22:36:32 IP:218.254.xxx.xxx 訂閱
Oh~I See
------
獨學無友則孤陋寡聞,相識滿天下能知天下事
小弟是來自香港的~~多多指教
系統時間:2024-04-25 22:44:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!