今天想測試 Delphi 連結 AD 的功能,網路上教學說,可以透過「Component → Import Compont…」來匯入,但實際操作時,卻出現 “存取 OLE 登錄時發生錯誤。” 的錯誤訊息。
2 月
19
Quick Report 在 1920*1080 解析度加上 125% 以上的顯示設定環境時,會發生「預覽列印」的比例不對(過大或過小),但實際印出來是正常的情形,如果要修正,需要在編譯環境修正 Quick Report 的 qrprntr.pas 檔,有兩種修正方式。
7 月
11
unit unit1; interface uses Windows, Messages.... type TFormName = (Casefm1, Casefm2, Casefm3); function xxx(): Boolean; var StrFormName: String; CaseFormName: TFormName; begin StrFormName := 'Case' + vFormName; // 將 FormName(物件) 與 TFormName(值) 做區隔。 // (vFormName為帶有各FormName的字串變數) CaseFormName := TFormName(GetEnumValue(TypeInfo(TFormName), StrFormName)); case CaseFormName of Casefm1: begin .............. end; Casefm2: begin .............. end; Casefm3: begin ............... end;
【參考連結】
- case 判斷string的方法 | 三窟
7 月
11
Delphi 選單似乎一直都有字型會變回預設值 (8, Tahoma) 的問題,國外有人提問,但沒有解決方式。目前我能想到的暫時解法是設定一個功能鍵 (可設為熱鍵),讓 user 遇到字型變小時,自行重置字型大小。(測試過程可透過變更 Windows 顯示大小百分比來讓選單字型變回預設值)
procedure Tmainform.N93Click(Sender: TObject); begin Screen.MenuFont.Size := 12; xxxxxx.BringToFront; // 改變畫面焦點,以刷新選單畫面。 end;
【參考連結】
- Delphi VCL force menu repaint – Stack Overflow
- 久久來一次: Delphi MainMenu 字型放大及Menu Checked 提示圖示不見解決方法
7 月
11
procedure TfmQAB.FormShortCut(var Msg: TWMKey; var Handled: Boolean); begin if (Msg.CharCode = 116) and (HiWord(GetKeyState(VK_CONTROL)) = 1) then begin ...... end end;
【參考連結】
- Catch SHIFT key during menu item selection? – Delphi Tips – CJC Delphi (Cool Delphi Tips)
- GetKeyState:GetKeyState ,該函式檢取指定虛擬鍵的 -百科知識中文網
- DELPHI OnKeyDown,OnKeyPress,OnKeyUp区别_踏雪无痕的博客-CSDN博客_delphi onkeydown
- delphi key值表 – 台部落
- How to detect ctrl-t keypress in Delphi – Stack Overflow
- 鍵盤鍵碼值對照表
7 月
11
var vTime, vTime1, vTime2: double; begin vTime1 := GetTickCount(); vTime2 := GetTickCount(); vTime := (vTime2 - vTime1) / 1000; Showmessage(floatToStr(vTime) + 's'); end;
【參考連結】
- delphi怎样求出两时间之间相差多少秒?-CSDN社区
11 月
23
前兩週公司網路架構大翻修,忙到不可開交,在修改print server的IP時,有兩顆很機歪,一開始先是不讓我改,後來改好後,變成只要閒置一段時間,他就會斷線,試了一整天,最後放棄,就抓了個小程式,放在Server讓程式每隔30秒就對print server來ping一下。