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

搜尋行,取出最大值

尚未結案
peiyao
一般會員


發表:41
回覆:23
積分:12
註冊:2003-07-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-27 00:12:09 IP:219.68.xxx.xxx 未訂閱
請問各位大大,如何按一button去搜尋下圖第二行之最大值(紅色圈),再取出左邊(藍色圈)之字串(103m.dssp),放進一edit~~ 這問題困擾小弟好久囉~~有誰能幫忙解答嗎? 感謝哦~~
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-27 08:58:40 IP:202.39.xxx.xxx 未訂閱
參考這篇: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=36755 --- Everything I say is a lie. 發表人 - hagar 於 2003/10/27 09:00:00
peiyao
一般會員


發表:41
回覆:23
積分:12
註冊:2003-07-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-27 09:30:07 IP:210.62.xxx.xxx 未訂閱
還是不太了解耶,能詳述嗎?謝謝
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-27 09:40:06 IP:202.39.xxx.xxx 未訂閱
1.利用 ClientDataset 的話, 排序後, 就是取第一筆 record 的欄位值 2.利用 TStringAlignGrid 的話, 就是取 Grid 中的第 0 個 row 的相關 Cells (如果第 0 row 沒有做 title 的話) --- Everything I say is a lie. 發表人 - hagar 於 2003/10/27 09:54:03
peiyao
一般會員


發表:41
回覆:23
積分:12
註冊:2003-07-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-27 11:47:14 IP:210.62.xxx.xxx 未訂閱
不好意思,能不能寫一小段程式,我會更了解 謝~~
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-27 13:07:27 IP:202.39.xxx.xxx 未訂閱
用 TStringAlignGrid, 在此下載: http://www.hoerstemeier.com/grid.htm 下載後, 將其解壓縮, 假設解壓在 C:\Program Files\Borland\Delphi5\AlignGrid 然後, Delphi 選單 Component -> Install Component 選 Into existing package, Unit file name 選壓縮目錄下的 Aligrid.pas 其它保留預設值, 按下 OK, 安裝完成後 元件盤上便會產生一個 Custom 頁, 裏面就有 TStringAlignGrid 元件可用.    
procedure TForm1.Button1Click(Sender: TObject);
begin
  // 第一個參數表示要哪個 Column 做排序, 依您的例子是第 2 Column(由 0 開始)
  // 第二個參數為 False 時表由大至小排序, 為 True 時表由小至大排序
  StringAlignGrid1.SortColumn(2, False);
  // 取出排序後最大值, 排序後, 若由大至小排序
  // 該 Column 最大值會顯示在 Grid 的非 Fixed row 的第一個 row
  ShowMessage(StringAlignGrid1.Cells[1,1]);
end;
--- Everything I say is a lie. 發表人 - hagar 於 2003/10/27 18:40:43
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-27 20:47:31 IP:219.129.xxx.xxx 未訂閱
正如hagar前辈所说: 就您这个问题,可以试试下面的,看看是不是您所要的: procedure TForm1.Button1Click(Sender: TObject); begin Query1.SQL.Text:='SELECT 栏1(你所指的蓝色部分),栏2(你所指的红色部分) FROM 资料库路径 order by 栏2 desc';//先按降序,对资料库进行排列,找最大值 Query1.Active:=true; Edit1.Text:=Query1.fieldbyname('栏1').AsString;//将Edit1的内容指向第一项记录,就是你要的记录 end; 發表人 - deity 於 2003/10/27 20:49:12
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-10-27 23:02:04 IP:61.30.xxx.xxx 未訂閱
這篇打錯了, 怎麼刪除文章啊 發表人 - miles 於 2003/10/27 23:08:15
------


我不是高手, 高手是正在銀幕前微笑的人.
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-10-27 23:03:33 IP:61.30.xxx.xxx 未訂閱
插個花: 這看起來像一個很單純的迴圈比對, 不考慮那麼多的話直接讀StringGrid裡的內容做比對.

var MyResult : String;
    CompareValue : Double;
    i : integer;
begin
   CompareValue := 0;
   for i := 1 to StringGrid1.RowCount - 1 do begin
       if CompareValue < StrToFloat(StringGrid1.Cells[2, i]) then begin
          CompareValue := StrToFloat(StringGrid1.Cells[2, i]);
          MyResult := StringGrid1.Cells[1, i];
       end;
   end;
   ShowMessage(MyResult);
end;
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
系統時間:2024-11-25 8:51:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!