Sử dụng InstallScript để Thực hiện chỉnh Dialogs
InstallShield 2014 dự án: Thông tin này áp dụng đối với các loại dự án sau đây: • InstallScript • InstallScript MSI . Các bước tiếp theo trong việc tạo ra một hộp thoại tùy chỉnh là để viết một chức năng InstallScript mà các quá trình tương tác của người dùng cuối với các điều khiển hộp thoại Để sử dụng InstallScript để thực hiện một hộp thoại tùy chỉnh trong một dự án InstallScript: 1. Bắt đầu bằng cách tạo ra một tập tin nguồn InstallScript mới để chứa mã hộp thoại tùy chỉnh. Đặt tên tệp CustomDialog.rul. Mẹo: Để có thể sử dụng các kịch bản thoại trong các dự án khác, sao chép các tập tin .rul đến một vị trí khác. Trong các dự án khác của bạn, mở xem InstallScript, kích chuột phải vào mục tập tin trong thám hiểm InstallScript, và nhấn Insert Script Files. 2. Bên trong CustomDialog.rul, đặt các mẫu thử nghiệm và triển khai cho chức năng thoại tùy chỉnh của bạn. Thêm mã sau đây để CustomDialog.rul. nguyên mẫu số CustomDialog (); hàm số CustomDialog () bắt đầu cuối; 3. Khi bạn biên dịch kịch bản của bạn, chỉ ra rằng kịch bản Setup.rul chính phải bao gồm các mã cho chức năng CustomDialog của bạn bằng cách chèn dòng sau gần đầu Setup.rul: #include "CustomDialog.rul" 4. Trong kịch bản CustomDialog.rul, xác định các hằng số mà lưu trữ các ID số các điều khiển mà bạn đã thêm vào hộp thoại. Nếu bạn đã sao chép lại, Next, và Cancel từ một hộp thoại tiêu chuẩn, bạn có thể thêm các dòng sau gần đầu CustomDialog.rul: // Kiểm định #define BUTTON_NEXT 1 #define BUTTON_BACK 12 Nhìn chung, các ID số của một kiểm soát trên một hộp thoại là số được liệt kê trong tài sản kiểm soát nhận dạng của điều khiển, hiển thị trong danh sách thuộc tính khi bạn chọn các điều khiển trong Dialog Editor. Quan trọng: Để cho phép người dùng cuối để hủy bỏ cài đặt bằng cách nhấn vào nút close ở góc trên bên phải góc của hộp thoại InstallScript, hộp thoại phải có một nút điều khiển với giá trị 2 cho các tài sản kiểm soát nhận dạng. Bạn có thể đặt nút này bất cứ nơi nào trên hộp thoại, và nếu cần thiết, bạn có thể làm cho nút này vô hình. Điều này là cần thiết vì các công cụ InstallScript đi thông điệp WM_CLOSE đến kịch bản chỉ nếu nó xuất phát từ một điều khiển hợp lệ trong hộp thoại. Nếu hộp thoại không có một nút bấm với định danh này, việc cài đặt không đi qua các thông điệp được tạo ra khi nút đóng của hộp thoại được nhấp. Bạn cần phải xác định các hằng số bổ sung cho tất cả các điều khiển khác (ví dụ, hộp kiểm tra, chỉnh sửa trường , hoặc hộp danh sách) mà người dùng cuối có thể tương tác. 5. Chức năng CustomDialog bạn tải các hộp thoại tùy chỉnh vào bộ nhớ bằng cách sử dụng chức năng EzDefineDialog: EzDefineDialog ( "CustomDialog", // nickname cho thoại ISUSER, // DLL có tài nguyên của hộp thoại "CustomDialog", // tên của hộp thoại trong Dialogs view 0); // ID tài nguyên số cho hộp thoại; không được sử dụng ở đây để tìm hiểu mà đối số bạn sử dụng với EzDefineDialog, xem EzDefineDialog. Tip: Các ID tài nguyên của một hộp thoại là tên của hộp thoại, như nó xuất hiện trong Dialog Editor. Nếu bạn cần phải xác định một ID tài nguyên số, bạn có thể thêm một số ID để cột ISResourceId trong bảng Dialog cho hộp thoại tùy chỉnh. Bạn có thể truy cập vào bảng Dialog trong biên soạn trực tiếp. 6. Tạo một vòng lặp thông điệp trong kịch bản của bạn cho các hộp thoại tùy chỉnh. Các vòng lặp thông điệp nhiều lần gọi hàm WaitOnDialog, trả về ID kiểm soát số cho các kiểm soát mà người dùng tương tác với. Một vòng lặp thông điệp điển hình xuất hiện như sau. // liên tục gọi WaitOnDialog đến khi người dùng thoát khỏi hộp thoại // với Next, Back, hoặc nút Cancel trong khi (! bDone) // chờ đợi cho người dùng tương tác với một điều khiển, sau đó // trả lại ID của nó nCtrl = WaitOnDialog ("CustomDialog"); // sử dụng một câu lệnh switch để xử lý các điều khiển khác nhau chuyển đổi (nCtrl) trường hợp Control1: // làm một cái gì đó khi người dùng nhấp Control1 trường hợp Control2: // làm một cái gì đó khi người dùng nhấp Control2 / báo cáo / trường hợp cho các điều khiển khác endswitch; endwhile; Ví dụ, CustomDialog hiện chứa Next, Back, và Cancel. Vòng lặp thông điệp của nó có thể xuất hiện như sau: while (bDone!) nControl = WaitOnDialog ("CustomDialog"); switch (nControl) trường hợp DLG_INIT: // Khởi tạo lại, tiếp theo, và hủy bỏ nút bật / tắt // trạng thái cho hộp thoại này và thay thế% P, VS%,% VI với // IFX_PRODUCT_DISPLAY_NAME, IFX_PRODUCT_DISPLAY_VERSION, và // IFX_INSTALLED_DISPLAY_VERSION, tương ứng, trên ID điều khiển 700-724 và 202. hwndDlg = CmdGetHwndDlg ("CustomDialog"); SdGeneralInit ("CustomDialog", hwndDlg, 0 , ""); trường hợp BUTTON_BACK: // user nhấp lại nReturn = BUTTON_BACK; bDone = TRUE; trường hợp BUTTON_NEXT: // user kích Next nReturn = BUTTON_NEXT; bDone = TRUE; default: // kiểm tra tiêu chuẩn kiểm soát xử lý nếu (SdIsStdButton (nControl ) && SdDoStdButton (nControl)) sau đó bDone = TRUE; endif; endswitch; endwhile; 7. Khi người sử dụng cuối cùng thoát khỏi hộp thoại bằng cách nhấn Back hoặc Tiếp theo, bạn nên loại bỏ các hộp thoại từ màn hình và từ bộ nhớ sử dụng EndDialog và ReleaseDialog: EndDialog ("CustomDialog"); ReleaseDialog ("CustomDialog"); Để sử dụng hộp thoại ở mặt chính kịch bản, thêm một cuộc gọi đến các chức năng CustomDialog tại, ví dụ, xử lý sự kiện của OnFirstUIBefore Setup.rul. Dlg_SdWelcome: szTitle = ""; szMsg = ""; nResult = SdWelcome (szTitle, szMsg); Dlg_CustomDlg: nResult = CustomDialog ( ); if (nResult = BUTTON_BACK) goto Dlg_SdWelcome; // vv Nếu người dùng cuối nhấp chuột hoặc Trở lại Tiếp theo, các script sẽ hiển thị hộp thoại trước hoặc sau đó. Nếu người dùng nhấp Cancel, hộp thoại xác nhận tiêu chuẩn (xử lý bằng cách xử lý sự kiện OnCanceling) được hiển thị. Lưu ý: Để biết thông tin về việc thực hiện chức năng điều khiển hội thoại, xem Sử dụng InstallScript để trình Dialog Controls. tin nhắn đặc biệt Ngoài trở về nhận dạng kiểm soát, các WaitOnDialog hàm trả về một số thông điệp đặc biệt. • Ngay lập tức trước khi hộp thoại được hiển thị trên màn hình, WaitOnDialog trả về tin nhắn DLG_INIT liên tục. Trong báo cáo trường hợp DLG_INIT, bạn có thể thiết lập các tiểu bang mặc định của hộp kiểm tra và các nút radio, cư và thiết lập các lựa chọn hiện tại trong một hộp danh sách hoặc hộp combo kiểm soát, hoặc thiết lập các văn bản ban đầu của một lĩnh vực chỉnh sửa. • Nếu có lỗi xảy ra, WaitOnDialog trả về DLG_ERR liên tục. InstallShield Library Help Tháng năm 2014 Copyright thông tin | Liên hệ
đang được dịch, vui lòng đợi..