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

如何用combobox切換DBGrid的column的位置??

答題得分者是:william
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-10 16:04:03 IP:61.220.xxx.xxx 未訂閱
請教各位前輩: 如何用combobox切換DBGrid的column的位置,combobox內容存的是column的title.caption,假設combobox有5個items為a,b,c,d,e。DBGrid的column排序方式也為a,b,c,d,e,若combobox切換到c的items的話,DBGrid的column排序方式會變成c,a,b,d,e 這要如何做??
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-10 16:19:09 IP:147.8.xxx.xxx 未訂閱
You can set the Index property of the column, e.g. DBGrid1.Columns.Items[2].Index := 0;
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-10 17:12:04 IP:61.220.xxx.xxx 未訂閱
引言: You can set the Index property of the column, e.g. DBGrid1.Columns.Items[2].Index := 0;
我把他寫在combobox.onchange 可是會有問題,如果所有欄位都點過之後,再重點,會保持不動,是不是所有的column.index都變成0了。
------
ivankuo
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-10 17:23:36 IP:147.8.xxx.xxx 未訂閱
引言:我把他寫在combobox.onchange 可是會有問題,如果所有欄位都點過之後,再重點,會保持不動,是不是所有的column.index都變成0了。
Um... Would you mind posting your OnChange implementation?
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-10 17:34:14 IP:61.220.xxx.xxx 未訂閱
procedure TForm1.ComboBox1Change(Sender: TObject); var j:integer; begin if ComboBox1.Text=DBGrid1.Columns.ComboBox1.itemIndex].title.caption then DBGrid1.Columns.Items[ComboBox1.itemIndex].Index:=0; end; 發表人 - ivankuo 於 2003/01/10 17:35:28
------
ivankuo
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-10 17:45:28 IP:147.8.xxx.xxx 未訂閱
incomplete?    
procedure TForm1.ComboBox1Change(Sender: TObject);
var
    j:integer;
    f: boolean;
begin
    f := False;
    j := 0;
    with DBGrid1.Columns do begin
        while (not f) and (j < Count) do begin
            f := (Items[j]=ComboBox1.Text);
            inc(j);
        end;
    end;
    if f then
        DBGrid1.Columns.Items[j-1].Index := 0;
end;
Why I need to add spaces before/after '<' ??? for proper display here? 發表人 - william 於 2003/01/10 18:00:54
yabula
初階會員


發表:47
回覆:117
積分:42
註冊:2002-10-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-01-10 17:52:25 IP:61.220.xxx.xxx 未訂閱
前輩我用了一個笨方法也可行^_^ procedure TForm1.ComboBox1Change(Sender: TObject); var j:integer; begin if ComboBox1.Text=DBGrid1.Columns[ComboBox1.itemIndex].title.caption then begin DBGrid1.Columns.Items[ComboBox1.itemIndex].Index:=0; ComboBox1.Items.Clear; for j:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.columns[j].Title.Caption); end; end;
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-01-10 17:59:22 IP:61.220.xxx.xxx 未訂閱
有問題    
procedure TForm1.ComboBox1Change(Sender: TObject);
var
    j:integer;
    f: boolean;
begin
    f := False;
    j := 0;
    with DBGrid1.Columns do begin
        while (not f) and (j     
[/quote]     
        
------
ivankuo
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-01-10 18:04:17 IP:147.8.xxx.xxx 未訂閱
引言:while (not f) and (j < Count) do begin f := (Items[j]=ComboBox1.Text); →這行怪怪的
Don't know why but I need to add extra space before and after '<' for a proper display in this board???
系統時間:2024-07-01 1:03:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!