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

想用Checkbox 和 DBEdit 的配合來作增減

尚未結案
kets
一般會員


發表:9
回覆:21
積分:6
註冊:2003-04-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-15 19:27:16 IP:61.70.xxx.xxx 未訂閱
各位大大,新手一問,現在我有個欄位設為"配備", 想用很多check讓使用者挑選各式配備如天窗,倒車雷達,安全氣囊等.. 選完後即存入該欄位,假設存入值為'天窗,倒車雷達'.. 那在選擇時我想應該是用caption caption caption來存入對吧? 但是在取出時呢?要怎麼在下次使用時出現天窗,倒車雷達的項目已勾選呢? 那出現後,若覺得不需要取消勾選,怎麼從該欄位中刪除己存的該項呢?
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-15 21:39:12 IP:61.70.xxx.xxx 未訂閱
引言: 各位大大,新手一問,現在我有個欄位設為"配備", 想用很多check讓使用者挑選各式配備如天窗,倒車雷達,安全氣囊等.. 選完後即存入該欄位,假設存入值為'天窗,倒車雷達'.. 那在選擇時我想應該是用caption caption caption來存入對吧? 但是在取出時呢?要怎麼在下次使用時出現天窗,倒車雷達的項目已勾選呢? 那出現後,若覺得不需要取消勾選,怎麼從該欄位中刪除己存的該項呢?
 
Uses IdStrings;    {$R *.dfm}
           //讀 CHeckBOX TO Edit1  
procedure TForm1.CheckBox1Click(Sender: TObject);
var
i : integer;
begin
  self.Edit1.Text :='';
  for i:=0 to  self.GroupBox1.ControlCount-1 do
    Begin
      if  TCheckBox(self.GroupBox1.Controls[i]).Checked =True then
         Begin
           if  self.Edit1.Text<>'' then
              self.Edit1.Text:= self.Edit1.Text   ';';                self.Edit1.Text:= self.Edit1.Text  
              TCheckBox(self.GroupBox1.Controls[i]).Caption ;             end;
    end;    end;
        //讀 Edit1 TO CHeckBOX
procedure TForm1.Button1Click(Sender: TObject);
var
  tmpstringlist: TStringList;
  i: integer;
  i2 : integer;
begin
  tmpstringlist := TStringList.create;
  SplitColumnsNoTrim(self.Edit1.Text, tmpstringlist, ';');      //全部清空         for i2:=0 to  self.GroupBox1.ControlCount-1 do
          TCheckBox(self.GroupBox1.Controls[i2]).Checked :=False;
  //
  for i := 0 to tmpstringlist.Count - 1 do
  begin
     for i2:=0 to  self.GroupBox1.ControlCount-1 do
        if TCheckBox(self.GroupBox1.Controls[i2]).Caption =tmpstringlist[i] then
          TCheckBox(self.GroupBox1.Controls[i2]).Checked :=True;
  end;    end;
有點亂 ,你參考看看
kets
一般會員


發表:9
回覆:21
積分:6
註冊:2003-04-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-16 00:02:05 IP:61.70.xxx.xxx 未訂閱
Uses IdStrings; ^^^^^^^^不好意思..這是?? //讀 Edit1 TO CHeckBOX procedure TForm1.Button1Click(Sender: TObject); var tmpstringlist: TStringList; i: integer; i2 : integer; begin tmpstringlist := TStringList.create; SplitColumnsNoTrim(self.Edit1.Text, tmpstringlist, ';'); ^^^^^^^^^^^^^^^^^^^^ 這個又是??
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-16 07:51:15 IP:61.218.xxx.xxx 未訂閱
引言: Uses IdStrings; ^^^^^^^^不好意思..這是?? //讀 Edit1 TO CHeckBOX procedure TForm1.Button1Click(Sender: TObject); var tmpstringlist: TStringList; i: integer; i2 : integer; begin tmpstringlist := TStringList.create; SplitColumnsNoTrim(self.Edit1.Text, tmpstringlist, ';'); ^^^^^^^^^^^^^^^^^^^^ 這個又是??
>>Uses IdStrings; 引用Indy的 IdStrings ,因要用SplitColumnsNoTrim >>SplitColumnsNoTrim(self.Edit1.Text, tmpstringlist, ';'); 把字串依':'分割轉成TStringList 清單
sl@cableplus.com.cn
高階會員


發表:168
回覆:359
積分:130
註冊:2004-03-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-16 13:59:55 IP:218.80.xxx.xxx 未訂閱
如果你用的是DBGRID那么在对应的QUERY里写入select cast(0 as bit)as selected……from 就行了
kets
一般會員


發表:9
回覆:21
積分:6
註冊:2003-04-26

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-07-17 17:38:01 IP:61.70.xxx.xxx 未訂閱
to jeffreck 大大 可是..我用delphi5內...好像不能醬用說..    to  sl@cableplus.com.cn大大.. 我只用一個欄位存而已...也可以醬用嗎? 然後..能否麻煩您說明一下... 不太懂說~
max5020
資深會員


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-07-20 14:10:20 IP:211.22.xxx.xxx 未訂閱
借jeffreck的來改一下, 拍謝哦!! {$R *.dfm} //讀 CHeckBOX TO Edit1 procedure TForm1.CheckBox1Click(Sender: TObject); var ts:TStringList; i: integer; begin ts:= TStringList.Create; ts.Clear; for i:=0 to self.GroupBox1.ControlCount-1 do Begin if TCheckBox(self.GroupBox1.Controls[i]).Checked =True then Begin if self.Edit1.Text<>'' then ts.Add(TCheckBox(self.GroupBox1.Controls[i]).Caption) ; end; end; FieldByName('FieldName').asString:= ts.text; end; //讀 Edit1 TO CHeckBOX procedure TForm1.Button1Click(Sender: TObject); var ts: TStringList; i: integer; i2 : integer; begin ts := TStringList.create; ts.Clear; ts.Text:= FieldByName('FieldName').asString; for i:=0 to self.GroupBox1.ControlCount-1 do Begin TCheckBox(self.GroupBox1.Controls[i]).Checked:= ts.FindString(TCheckBox(self.GroupBox1.Controls[i]).Caption); end; end; //Try看看!!,可能要自己改一下
kets
一般會員


發表:9
回覆:21
積分:6
註冊:2003-04-26

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-07-22 20:43:40 IP:61.70.xxx.xxx 未訂閱
引言: //讀 Edit1 TO CHeckBOX procedure TForm1.Button1Click(Sender: TObject); var ts: TStringList; i: integer; i2 : integer; begin ts := TStringList.create; ts.Clear; ts.Text:= FieldByName('FieldName').asString; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //Try看看!!,可能要自己改一下
感謝您的回覆..這段好像還是有點疑問說~~ 試的結果是可以讀..但文字都是連起來的... 好像不能像list那樣分行排列... 還有什麼其他的元件或函數可以用嗎? 加上#13#10可以嗎? 發表人 - kets 於 2004/07/22 20:45:07
系統時間:2024-07-01 10:47:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!