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

一些看不懂低敘述........

尚未結案
male0430
一般會員


發表:2
回覆:2
積分:0
註冊:2004-12-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-22 12:52:09 IP:163.23.xxx.xxx 未訂閱
我在delphi裡面找到一些類別裡面有這樣低敘述如下: WH_KEYBOARD_LL =WH_KEYBOARD_LL =$80000000; 小弟我不知道後面的那些數字是做什麼用ㄉ如:$80000000 所以請各位大哥幫幫忙囉.......謝拉
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-22 13:39:24 IP:220.228.xxx.xxx 未訂閱
$80000000代表16進位數字 10進位為2147483648 Ian 發表人 - l630521 於 2005/02/22 13:41:34
male0430
一般會員


發表:2
回覆:2
積分:0
註冊:2004-12-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-22 14:09:52 IP:163.23.xxx.xxx 未訂閱
那它這樣的方式(我指的是交一個變數指定給一個16進位的數字)是有用途ㄇ,因為要找到這樣的方式好像通常在較上層的類別中都看的到如下: TObject = class constructor Create; procedure Free; class function InitInstance(Instance: Pointer): TObject; procedure CleanupInstance; function ClassType: TClass; class function ClassName: ShortString; class function ClassNameIs(const Name: string): Boolean; class function ClassParent: TClass; class function ClassInfo: Pointer; class function InstanceSize: Longint; class function InheritsFrom(AClass: TClass): Boolean; class function MethodAddress(const Name: ShortString): Pointer; class function MethodName(Address: Pointer): ShortString; function FieldAddress(const Name: ShortString): Pointer; function GetInterface(const IID: TGUID; out Obj): Boolean; class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry; class function GetInterfaceTable: PInterfaceTable; function SafeCallException(ExceptObject: TObject; ExceptAddr: Pointer): HResult; virtual; procedure AfterConstruction; virtual; procedure BeforeDestruction; virtual; procedure Dispatch(var Message); virtual; procedure DefaultHandler(var Message); virtual; class function NewInstance: TObject; virtual; procedure FreeInstance; virtual; destructor Destroy; virtual; end; const S_OK = 0; {$EXTERNALSYM S_OK} S_FALSE = $00000001; {$EXTERNALSYM S_FALSE} E_NOINTERFACE = HRESULT($80004002); {$EXTERNALSYM E_NOINTERFACE} E_UNEXPECTED = HRESULT($8000FFFF); {$EXTERNALSYM E_UNEXPECTED} E_NOTIMPL = HRESULT($80004001); {$EXTERNALSYM E_NOTIMPL} 或 vtInteger = 0; vtBoolean = 1; vtChar = 2; vtExtended = 3; 他們都有特別意義ㄇ 各位大大就幫忙囉謝謝ㄌ 因為我去外面找ㄌ很多書都找不到這纇滴書......實在是. 呵呵 謝謝拉
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-22 14:19:04 IP:220.228.xxx.xxx 未訂閱
你說的應該是常數,前有const的宣告 個人認為如果個值必須維持不變,或者在許多地方都會重複用到的值,最好都定義為常數 像你舉的例子WH_KEYBOARD_LL =WH_KEYBOARD_LL =$80000000; 如果你直接用了$80000000的話,如果哪一天必需變更成$80000001的話,那你可能要一個程式一個程式去找出來再變更,用常數的話,只要去改WH_KEYBOARD_LL =WH_KEYBOARD_LL =$80000001;就可以了。 以上是小弟的看法,如有錯誤,還請各位前輩指教。 Ian
male0430
一般會員


發表:2
回覆:2
積分:0
註冊:2004-12-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-02-22 14:27:15 IP:163.23.xxx.xxx 未訂閱
因為一般不是都把變數指定給十進位ㄇ 為什麼會有指定給$....等 是因為要指定給記憶體位置ㄇ還是.......
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-02-22 14:57:35 IP:220.228.xxx.xxx 未訂閱
就只是單純只定一個值給常數而已,Delphi用到很多16進位的常數,至於為什麼不用10進位的,歹勢!我也不清楚,要請知道為什麼的前輩解答一下了! Ian
yorkland
高階會員


發表:2
回覆:138
積分:108
註冊:2004-12-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-02-22 16:54:49 IP:220.130.xxx.xxx 未訂閱
有些情況下, 16進制反而容易讀取。 像Hardware的控制通常是以Bit為單位, 又例如: TColor=$00FF00FF 我們可以輕易地知道R,G,B各是那一組數字, 如果以十進制顯示, 反而全搞在一起了, 不容易閱讀。
系統時間:2024-05-19 1:34:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!