2009-09-16 20 views
8

Chúng tôi có một vài ứng dụng kế thừa được viết ở Delphi 7. Chúng tôi đã có một vài yêu cầu trong nhiều năm để hỗ trợ cài đặt dpi desktop tùy chỉnh trong các ứng dụng này nhưng chúng tôi có thể né tránh viên đạn cho đến khi biết. Chúng tôi không thể nữa.Làm cách nào để hỗ trợ cài đặt DPI cho máy tính để bàn tùy chỉnh trong các ứng dụng Delphi 7?

Khi người dùng đặt bàn làm việc của mình để nói 120 dpi một số điều khiển "rơi" ứng dụng hoặc trải dài ngoài khả năng hiển thị của biểu mẫu và cụ thể là các biểu tượng được neo vào cạnh phải của bố mẹ.

Tôi có thể làm gì để ngăn chặn vấn đề này KHÔNG CÓ phẫu thuật tim mở.

+0

VCL chỉ đơn giản là không thể làm điều đó mà không có "phẫu thuật tim hở". Giải pháp tốt nhất mà tôi đã thấy cho đến nay được sử dụng trong Inno Setup, có các biểu mẫu có 'Scaled' được đặt thành' False' nhưng sử dụng các hàm mở rộng tùy chỉnh cho các biểu mẫu khi chạy. Điều này làm cho IS tạo ra các chương trình thiết lập trông khá tốt ở các thiết lập DPI cao hơn. – mghie

Trả lời

1

Như bạn có thể đã biết, đây là well known issue with Delphi forms and interactions with system font sizes.

Hành vi mặc định của biểu mẫu Delphi là cố gắng mở rộng để tôn trọng môi trường máy tính để bàn của người dùng (thời gian chạy). Điều này có thể có tác dụng phụ không mong muốn và không mong muốn tuy nhiên, như bạn đã tìm thấy.

Nhưng thuộc tính được chia tỷ lệ (TRUE theo mặc định) có thể được đặt FALSE để ngăn chặn điều này, nhưng tôi khuyên bạn nên đọc bài viết đầu tiên đó và cũng xem xét the information in this article để xác định xem đây có phải là giải pháp đúng trong trường hợp của bạn hay không.

Nếu bạn may mắn, chỉ cần thiết lập Scaled thành FALSE trên tất cả các biểu mẫu có thể giúp bạn có một cách tốt, nếu không phải tất cả các cách (có thể tẻ nhạt, nhưng không chính xác là phẫu thuật tim hở).

+0

Ah, bạn đánh tôi vài giây và câu trả lời của bạn tốt hơn/hoàn chỉnh hơn. Tôi sẽ xóa câu trả lời tương tự của tôi. :-) – robsoft

+3

-1 cho mẹo để thậm chí xem xét chỉ đơn giản là thiết lập 'Scaled' thành' False'. Người ta có thể làm điều đó, nhưng chỉ với thay đổi kích thước thời gian chạy hoàn toàn và định vị lại tất cả các điều khiển. Tốt hơn là sau khi thiết lập phông chữ hệ thống thích hợp (được xác định tại thời gian chạy) cho mỗi mẫu. Không có thay đổi kích thước hoặc thời gian chạy bất cứ điều gì chỉ là tàn nhẫn đối với những người có thị lực kém và/hoặc một màn hình DPI cao. – mghie

Các vấn đề liên quan