Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как исправить ошибку отсутствия модуля FmxDesignWindows в Delphi при разработке дизайн-пакета

Delphi , Программа и Интерфейс , MDI приложения

 

При разработке дизайн-пакетов для Delphi, особенно при работе с FireMonkey (FMX), разработчики могут столкнуться с ошибкой компиляции, связанной с отсутствием модуля FmxDesignWindows. Эта проблема возникает при попытке использовать функциональность из FMX.Design.Items в своем пакете.

Проблема

Основная проблема заключается в том, что модуль FmxDesignWindows не находится в стандартных путях поиска Delphi, несмотря на добавление пути $(BDS)\source\Property Editors\ в настройках проекта. При компиляции пакета вы получаете ошибку:

[Error] Fatal: Unable to find 'FmxDesignWindows.dcu' or source

Решение

1. Использование dclFmxStd

Как было обнаружено в контексте, простое решение заключается в добавлении модуля dclFmxStd в раздел uses вашего пакета:

uses
  dclFmxStd;

Этот модуль является частью стандартной поставки Delphi и содержит необходимые зависимости для работы с FireMonkey в дизайн-времени.

2. Проверка путей поиска

Если первый вариант не сработал, убедитесь, что у вас правильно настроены пути поиска:

  1. Откройте Project > Options > Delphi Compiler > Search Path
  2. Добавьте следующие пути (адаптируйте под вашу версию Delphi): $(BDS)\lib\$(Platform)\release $(BDS)\source\fmx $(BDS)\source\rtl\common

3. Альтернативное решение: использование Runtime Packages

Если проблема сохраняется, попробуйте настроить ваш пакет на использование runtime-пакетов:

package MyDesignPackage;

{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION 'My FireMonkey Design Package'}
{$DESIGNONLY}
{$IMPLICITBUILD ON}

requires
  rtl,
  fmx,
  dclFmxStd;

contains
  MyDesignUnit in 'MyDesignUnit.pas';

end.

4. Проверка установки RAD Studio

Убедитесь, что у вас установлены все необходимые компоненты RAD Studio:

  1. Запустите инсталлятор RAD Studio
  2. Выберите "Modify"
  3. Проверьте, что установлены "FireMonkey Components" и "Design-Time Packages"

Пример реализации

Вот пример простого дизайн-пакета для FireMonkey, который добавляет новый редактор свойств:

unit MyDesignUnit;

interface

uses
  System.Classes, DesignIntf, DesignEditors, FMX.Controls, FMX.Types;

type
  TMyFMXComponentEditor = class(TComponentEditor)
  public
    procedure ExecuteVerb(Index: Integer); override;
    function GetVerb(Index: Integer): string; override;
    function GetVerbCount: Integer; override;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponentEditor(TFmxObject, TMyFMXComponentEditor);
end;

{ TMyFMXComponentEditor }

procedure TMyFMXComponentEditor.ExecuteVerb(Index: Integer);
begin
  inherited;
  if Index = 0 then
    ShowMessage('Это мой пользовательский редактор для FireMonkey!');
end;

function TMyFMXComponentEditor.GetVerb(Index: Integer): string;
begin
  case Index of
    0: Result := 'Показать сообщение от редактора';
  else
    Result := '';
  end;
end;

function TMyFMXComponentEditor.GetVerbCount: Integer;
begin
  Result := 1;
end;

end.

Заключение

Ошибка отсутствия модуля FmxDesignWindows обычно решается простым добавлением dclFmxStd в раздел uses вашего пакета. Если проблема сохраняется, проверьте пути поиска и убедитесь в правильности установки RAD Studio. При разработке дизайн-пакетов для FireMonkey всегда включайте необходимые runtime-пакеты в секцию requires вашего файла .dpk.

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

Создано по материалам из источника по ссылке.

это описание решения проблемы отсутствия модуля FmxDesignWindows в Delphi при разработке дизайн-пакета, включающее причины ошибки и способы её устранения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: MDI приложения ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-04 06:55:18/0.0057470798492432/0