2015-03-09 5 views
-1

У меня есть программное обеспечение, разработанное первоначально в Delphi 2007. Программное обеспечение имеет интерфейс MDI, и я разместил множество элементов управления в родительской форме MDI, таких как панели, кнопки, элементы управления редактированием и т. Д.Панель и элементы управления на ней блокируются в MDI в Delphi XE6 Почему?

Просто для тестирования как легко или сложно было переносить его на более новую версию Delphi (особенно Delphi XE6), я открыл исходный проект в Delphi XE6 и дал команду компиляции.

Во время компиляции он не дал мне ни одной ошибки и просто скомпилирован без сучка и задоринки.

Но при запуске скомпилированного исполняемого файла я заметил, что когда мы открываем в нем MDI-диск, все элементы управления (т. Е. Кнопка, Edit, Memo и т. Д.) Блокируются, и мы не можем нажимать на них или редактировать их.

Это ошибка Delphi или что-то связанное с новым компилятором и UNICODE?

Пожалуйста, расскажите мне, как я должен решить эту проблему.

+0

Решите проблему, предварительно выделив ее. Это будет связано с некоторой отладкой и возможностью увидеть код. Вряд ли вы найдете серебряную пулю. Вам нужно будет придать им прививку. –

+0

Вы хотите сказать, что у рамки VCL по умолчанию есть какие-то ошибки, из-за которых возникает эта проблема? –

+3

Нет. Я хочу сказать, что вам нужно сделать некоторую отладку, чтобы понять, что не так с вашим кодом. Мои приложения MDI в порядке. Что особенного в вашем приложении MDI? –

ответ

1

После некоторых испытаний никаких проблем не обнаружено при простом открытии старого проекта MDI (сделанного с D7) в DXE7, компиляции и запуске. Элементы управления Edit, CheckBoxes и кнопки, расположенные в основной форме, реагируют нормально с открытыми или открытыми дочерними окнами MDI. Чтобы ответить на ваши вопросы,

Панель и элементы управления на ней заблокированы в MDI в Delphi XE6 Почему?

Возможно, из-за того, что ваш код отключает элементы управления в родительском окне при открытии дочернего элемента. Это, однако, чистое предположение, поскольку вы не предоставили никаких средств для дальнейшего изучения.

Это ошибка Delphi или что-то связанное с новым компилятором и UNICODE?

Нет, это не ошибка в Delphi. Также нет никаких доказательств того, что это будет связано с новым компилятором и Unicode.

+0

Вместо того, чтобы отлаживать мой код, что я сделал, было добавлено два новых элемента управления T (T) в родительском потоке MDI. Затем я разместил несколько стандартных элементов управления VCL, таких как «Редактировать», «Заметки», «Кнопка», «Флажок» и т. Д. На каждой панели. Я запускал программное обеспечение сейчас, если я не открываю ни одного ребенка MDI, все работает так, как ожидалось. Значение Я могу ввести в каждый блок редактирования и памятки, установите флажок «Отменить флажок» и т. Д. Но как только я открою дочерний MDI, все элементы управления на этих панелях будут заблокированы. Такое поведение сохраняется даже после закрытия ребенка MDI. Что вы скажете об этом? –

+0

Я говорю ничего более или менее, чем я уже говорил выше. –