From 0756bf12d10cf1b7f78c571de0a9ad69cbaeb7ca Mon Sep 17 00:00:00 2001
From: curtis <curtis@i-mps.com>
Date: 星期一, 30 三月 2026 14:24:17 +0800
Subject: [PATCH] fix: 更新內部引用方法參照
---
uiOutput/PatchFom/PatchFom.ts | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 155 insertions(+), 0 deletions(-)
diff --git a/uiOutput/PatchFom/PatchFom.ts b/uiOutput/PatchFom/PatchFom.ts
new file mode 100644
index 0000000..5850732
--- /dev/null
+++ b/uiOutput/PatchFom/PatchFom.ts
@@ -0,0 +1,155 @@
+import { ref, onMounted } from 'vue';
+
+export function usePatchFomLogic() {
+ // --- State Mapped from Delphi UI Components ---
+
+ // ScannerGB
+ const isDpiEnabled = ref<boolean>(false); // Enabled = False in DFM
+ const dpi = ref<string>('240');
+ const borderClear = ref<boolean>(false);
+ const deskew = ref<boolean>(false);
+ const reverse = ref<boolean>(false);
+ const duplex = ref<boolean>(false); // Enabled = False in DFM
+
+ // ImgSetGB
+ const imgSetUse = ref<boolean>(false);
+ const bright = ref<number>(0);
+ const contrast = ref<number>(0);
+
+ // ScanShowRG (0 = 清楚影像, 1 = 模糊影像, 2 = 無影像)
+ const scanShowMode = ref<string>('0');
+
+ // ScanRotateRG (0 = 無, 1 = 左轉90度, 2 = 轉180度, 3 = 右轉90度)
+ const scanRotate = ref<string>('0');
+
+ // BlankGB
+ const blankUse = ref<boolean>(false);
+ const blankSize = ref<number>(0);
+
+ // Public property equivalent
+ const SelectOk = ref<boolean>(false);
+
+ // --- Mock external Global Variables from CB_IMGPSScanImp ---
+ // In a real application, these would be imported from a store or context
+ const mockGlobalState = {
+ Def_DeviceDelete: false,
+ Def_DeviceDeleteSize: 1024,
+ Def_ScanDpi: 240,
+ Def_ScanDuplex: true,
+ Def_ScannerReverse: false,
+ Def_BoardClear: true,
+ Def_ScanDeskew: true,
+ Def_ScanImgSetUse: false,
+ Def_ScanBright: 10,
+ Def_ScanContrast: 20,
+ Def_ScanRotate: 90, // Mapped to 3 (右轉90度) in switch statement
+ Def_ScanImgShowMode: 1 // Mapped to 1 (模糊影像)
+ };
+
+ // --- Methods ---
+
+ const FormCreate = () => {
+ // Equivalent to PostMessage(Handle,WM_ACTIVATE,WA_CLICKACTIVE,0);
+ console.log('FormCreate: PatchDlg activated');
+ };
+
+ const BlankuseCBClick = () => {
+ // If BlankuseCB.Checked Then SpinEdit5.Enabled := True Else SpinEdit5.Enabled := False;
+ // handled via Vue binding `:disabled="!blankUse"` in template,
+ // but kept here for logical representation
+ console.log('BlankuseCBClick triggered, blankUse:', blankUse.value);
+ };
+
+ const DefaultBtClick = () => {
+ // Reset to defaults
+ blankUse.value = mockGlobalState.Def_DeviceDelete;
+ blankSize.value = mockGlobalState.Def_DeviceDeleteSize;
+
+ dpi.value = mockGlobalState.Def_ScanDpi.toString();
+ duplex.value = mockGlobalState.Def_ScanDuplex;
+ reverse.value = mockGlobalState.Def_ScannerReverse;
+ borderClear.value = mockGlobalState.Def_BoardClear;
+ deskew.value = mockGlobalState.Def_ScanDeskew;
+
+ imgSetUse.value = mockGlobalState.Def_ScanImgSetUse;
+ bright.value = mockGlobalState.Def_ScanBright;
+ contrast.value = mockGlobalState.Def_ScanContrast;
+
+ switch (mockGlobalState.Def_ScanRotate) {
+ case 0: scanRotate.value = '0'; break;
+ case 270: scanRotate.value = '1'; break;
+ case 180: scanRotate.value = '2'; break;
+ case 90: scanRotate.value = '3'; break;
+ default: scanRotate.value = '0'; break;
+ }
+
+ switch (mockGlobalState.Def_ScanImgShowMode) {
+ case 0: scanShowMode.value = '0'; break;
+ case 1: scanShowMode.value = '1'; break;
+ case 2: scanShowMode.value = '2'; break;
+ default: scanShowMode.value = '0'; break;
+ }
+
+ console.log('Default values loaded');
+ };
+
+ const OkBtClick = () => {
+ SelectOk.value = true;
+ closeForm('ok');
+ };
+
+ const CancelBtClick = () => {
+ SelectOk.value = false;
+ closeForm('cancel');
+ };
+
+ const ComboBox1KeyPress = (e: KeyboardEvent) => {
+ // IF ((Ord(Key) < 48) or (ord(Key) > 57)) and (ord(key) <> 8) Then key := Chr(0);
+ const charCode = e.charCode;
+ if ((charCode < 48 || charCode > 57) && e.key !== 'Backspace') {
+ e.preventDefault();
+ }
+ };
+
+ const ComboBox1Exit = () => {
+ // IF ComboBox1.Text = '' Then ComBoBox1.Text := '240';
+ if (!dpi.value) {
+ dpi.value = '240';
+ }
+ };
+
+ // Helper function to simulate modal close
+ const closeForm = (result: string) => {
+ console.log(`PatchDlg closing with result: ${result}`);
+ };
+
+ onMounted(() => {
+ FormCreate();
+ // Usually you'd call DefaultBtClick() here or in the parent before opening
+ });
+
+ return {
+ // State
+ isDpiEnabled,
+ dpi,
+ borderClear,
+ deskew,
+ reverse,
+ duplex,
+ imgSetUse,
+ bright,
+ contrast,
+ scanShowMode,
+ scanRotate,
+ blankUse,
+ blankSize,
+
+ // Actions
+ BlankuseCBClick,
+ DefaultBtClick,
+ OkBtClick,
+ CancelBtClick,
+ ComboBox1KeyPress,
+ ComboBox1Exit
+ };
+}
--
Gitblit v1.8.0