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

如何把 THotKey 的 Hotkey 存起來?

尚未結案
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-24 13:07:06 IP:211.74.xxx.xxx 未訂閱
我想把 THotKey 的 Hotkey 存到 ini 檔裡頭, 以便下次開啟程式時能夠自動套用,可是現在有些問題,還麻煩大家幫我看看了。
 
    // iniKey 是 TIni 類型,這是把 HotKey 的值存起來
        iniKey->WriteString("HotKey", "HotKey1", ShortCutToText(myHotkey.hk1));
        iniKey->WriteString("HotKey", "HotKey2", ShortCutToText(myHotkey.hk2));
        iniKey->WriteString("HotKey", "HotKey3", ShortCutToText(myHotkey.hk3));
 
    // 這是我自己宣告的 struct 用來存 Hotkey 值
    struct Hotkeys {
        TShortCut hk1;
        TShortCut hk2;
        TShortCut hk3;
    } myHotkey;
 
    // 這是把 Hotkey 值寫入我的 struct 裡頭
    myHotkey.hk1 = TextToShortCut(iniKey->ReadString("HotKey", "HotKey1", NULL));
    myHotkey.hk2 = TextToShortCut(iniKey->ReadString("HotKey", "HotKey2", NULL));
    myHotkey.hk3 = TextToShortCut(iniKey->ReadString("HotKey", "HotKey3", NULL));
以上就是我存取 Hotkey 的方法,可是奇怪的是, 有些 Hotkey 的值會存不起來。 例如我按 Insert 鍵,在 THotKey 裡頭顯示是「Insert」, 存起來是存成「Ins」,但是讀回來卻是「Num 0」, 這是為什麼呢? 還有我對 THotKey 元件按下 Delete 鍵沒作用,無法設成熱鍵,這又是為什麼呢? 最後想請問的是,有沒有辦法依序存取THotKey呢? 例如我在 TabSheet 放了好幾個 THotKey 元件, 我要怎樣依序存取它們的 Hotkey 值呢? -- http://www.csie.nctu.edu.tw/~chtai/software.php 好用免費軟體的收集網頁,歡迎大家跟我分享或一同推廣免費軟體。 若您覺得這網頁不錯,也歡迎您將它傳出去 :) 發表人 - chtai 於 2005/02/24 13:19:02
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-24 15:42:57 IP:211.76.xxx.xxx 未訂閱
chtai你好:     我用自已包裝的TIni元件是可以正確的寫入和讀出的。另外TShortCut本身是WORD,應該可以直接存入就能運作。  
 
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TShortCut shortcut1 = TextToShortCut("Ins");
    PUT_INI(shortcut1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    TShortCut shortcut1;
    GET_INI(shortcut1);
    ShowMessage(ShortCutToText(shortcut1));//顯示Ins
}
至於THotKey我沒有使用經驗,有請版上高手們了。
chtai
高階會員


發表:68
回覆:238
積分:116
註冊:2004-05-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-24 23:28:19 IP:59.105.xxx.xxx 未訂閱
引言: chtai你好: 我用自已包裝的TIni元件是可以正確的寫入和讀出的。另外TShortCut本身是WORD,應該可以直接存入就能運作。
可是我就是想要在 ini 檔裡頭顯示出熱鍵的名稱而不只是數字嘛~ 因為這樣就比較容易一眼就看出是什麼熱鍵阿 :) 例如 Insert 就存成 Ins,Page Up 就存成 PgUp 之類, 這樣一眼就看出來啦。 -- http://www.csie.nctu.edu.tw/~chtai/software.php 好用免費軟體的收集網頁,歡迎大家跟我分享或一同推廣免費軟體。 若您覺得這網頁不錯,也歡迎您將它傳出去 :)
------
My Web: http://nelson.csie.us
My Blog: http://blog.nelson.csie.us
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-25 20:59:05 IP:211.76.xxx.xxx 未訂閱
我用以下的碼,也是可以成功的存INI檔:    ini內容: [Main] shortuctstr=Ins    程式碼:  
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TShortCut shortcut1 = TextToShortCut("Ins");
    AnsiString shortuctstr = ShortCutToText(shortcut1);
    PUT_INI(shortuctstr);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    TShortCut shortcut1;
    AnsiString shortuctstr;
    GET_INI(shortuctstr);
    shortcut1 = TextToShortCut(shortuctstr);        ShowMessage(ShortCutToText(shortcut1));//顯示Ins
}
 
系統時間:2024-05-13 5:04:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!