有關 RadioGroup 如何存值較好?? |
答題得分者是:00156
|
小蚊子
中階會員 發表:55 回覆:267 積分:94 註冊:2002-06-08 發送簡訊給我 |
情況如下 用 RadioGroup 當選項,下次程式啟動時,可能原來的點選值會不見
我是用 另一個 edit 來存值,透過 OnClick 事件達到 "連動" 的效果
存檔就用 edit.text 的內容值, 下此開啟程式時,會再把 edit 的值,
反向指定給 RadioGroup.itemindex.,等程式開發完成後
再把所有的 edit.text 全部 Visible = false (與 RadioGroup 有關的那幾個)
畫面就會美美的. 我遇到的問題是
1. 以上過程是為了要存值,所以借用 edit.text ,不知我的方法對嗎?
一般的大眾式如此用法嗎?? 個人感覺好像多此一舉 2.
procedure TForm1.RadioGroup1Click(Sender: TObject); begin edit1.Text := inttostr(RadioGroup1. end;當我在輸入 RadioGroup1. 時,一般會出現很多 ProPerty 可以選用 可是有時出現 如圖2,只有一個選項,但程式 run 過一次後,又可以出現 三個選項 如圖3, 但是若是新的 RadioGroup3 第一次都只能出現 如圖2 的單一選項,根本無 itemindex 可以點選,有點奇怪??? 3. 另外一個問題是 若 RadioGroup1 及 edit1 的類似組合很多,難道要寫很多的 OnClick 事件嗎? 是否有夠簡潔的方式?? |
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
|
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
試試下面的程式碼吧(我只放了RadioGroup1及RadioGroup2兩個,並設定OnCreate及OnClose兩個事件)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) RadioGroup1: TRadioGroup; RadioGroup2: TRadioGroup; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); private procedure SaveToFile(AFileName:TFileName); procedure LoadFromFile(AFileName:TFileName); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.SaveToFile(AFileName:TFileName); var ss:TStrings; begin ss:=TStringList.Create; try ss.Add('地點=' IntToStr(RadioGroup1.ItemIndex)); ss.Add('住宿=' IntToStr(RadioGroup2.ItemIndex)); //...繼續Add所有的RadioGroup ss.SaveToFile(AFileName); finally ss.Free; end; end; procedure TForm1.LoadFromFile(AFileName:TFileName); var ss:TStrings; i,j,k:integer; begin ss:=TStringList.Create; try ss.LoadFromFile(AFileName); for i:=0 to ss.Count-1 do for j:=0 to self.ComponentCount-1 do begin if Components[j].ClassName='TRadioGroup' then begin k:=StrToIntDef(ss.Values[(Components[j] as TRadioGroup).Caption],-1); (Components[j] as TRadioGroup).ItemIndex:=k; end; end; finally ss.Free; end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin self.SaveToFile('test.txt'); end; procedure TForm1.FormCreate(Sender: TObject); begin self.LoadFromFile('test.txt'); end; end.發表人 - 00156 於 2005/01/24 21:21:23 |
小蚊子
中階會員 發表:55 回覆:267 積分:94 註冊:2002-06-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |