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

關於StringGrid 的一些問題,感謝

答題得分者是:P.D.
hcker
中階會員


發表:95
回覆:118
積分:62
註冊:2003-02-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-03-23 00:34:57 IP:116.29.xxx.xxx 訂閱
StringGridStringGrid編號姓名工資
2. 3909.2
4. 100.2
6. 799.1
合併後迴圈傳遞兩個參數出來即可姓名累計例如因為我在學習我想傳遞過去繪餅狀圖
編輯記錄
hcker 重新編輯於 2008-03-23 00:37:56, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-03-24 16:35:41 IP:61.67.xxx.xxx 未訂閱
既然你用StringGrid, 那就必須使用迴圈來算了, 重點是如何取得甲乙丙值. 我的做法利用一個陣列
namearray: Array of String ==> 因為不知道有多少人, 所以用動態的
valuearray: Array of Double ==> 這是要儲存甲乙丙的值, 當然如果用二維陣列可以一次解決
再來使用迴圈分析, 大致程式是如此, 我沒有實證過(只有paper上寫), 所以程式執行起來是否有bug請自行run
相關變數自行定義

arraycount:= 0;
for i:= 0 to StringGrid.RowCount-1 do begin
// 這段在判斷甲乙丙是否存在, 否則加入陣列
nowarray= -1;
for j:= low(namearray) to high(namearray) do begin
if namearray[j]=StringGrid1.Cell[x,i] then begin // x 是 甲乙丙的cell column
nowarray:= j;
break;
end;
next;

if nowarray=-1 then begin
inc(arraycount);
setlength(namearray,arraycount);
setlength(valuearray,arraycount);
nowarray:= arraycount-1
end;

valuearray[nowarray]:= valuearray[nowarray] StringGrid1.Cell[y,i]; // y 為甲乙丙各值的cell column
next;


===================引 用 hcker 文 章===================
StringGridStringGrid編號姓名工資
2. 3909.2
4. 100.2
6. 799.1
合併後迴圈傳遞兩個參數出來即可姓名累計例如因為我在學習我想傳遞過去繪餅狀圖
hcker
中階會員


發表:95
回覆:118
積分:62
註冊:2003-02-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-03-25 08:19:35 IP:125.89.xxx.xxx 訂閱
多謝指點,後來我也參考的寫了一段代碼,不過得執行三次才能將排列列出來。應該效率是比較低的。我先取出姓名的列進行分析找出重複的部分剩下部分相應的數值進行累加。



:= iCount 1;
while iNext < st.Count do

begin


if TmpStr = st.Strings[iNext] then

begin

st.Delete(iNext);


end;

Inc(iNext);
end;
Inc(iCount);
end;


編輯記錄
hcker 重新編輯於 2008-03-25 08:20:48, 註解 無‧
hcker 重新編輯於 2008-03-25 08:21:46, 註解 無‧
hcker 重新編輯於 2008-03-25 08:24:15, 註解 無‧
hcker 重新編輯於 2008-03-25 08:28:46, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-03-25 10:10:20 IP:61.67.xxx.xxx 未訂閱
其實陣列只是其中一種方法, 絶不是萬靈丹, 用 TStringList, TComboxBox, TComboList...都可以解決, 我常對po文的後進說, 程式設計最終是看結果, 不管過程如何, 首要能先得到結果才算完成, 完成後再來討論技術上的問題, 否則一直執著於要做到完美根本就交不了案了!
系統時間:2024-05-17 22:35:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!