Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Как перекомпилировать системный модуль?  [new]
VirtaOtec
Member

Откуда:
Сообщений: 16
Здравствуй, дорогой читатель. Подскажи: вот я комментирую строчку в системном модуле, но при запуске программы в отладочном режиме это изменение не учитывается. Думаю, дело в том, что системный модуль не компилируется. Как же я могу заставить его перекомпилироваться и учесть мои изменения?
16 мар 20, 21:22    [22100202]     Ответить | Цитировать Сообщить модератору
 Re: Как перекомпилировать системный модуль?  [new]
rgreat
Member

Откуда:
Сообщений: 5722
VirtaOtec,

Можно скопировать его себе в проект.

Но вообще править системные модули это плохая практика.

Сообщение было отредактировано: 16 мар 20, 21:29
16 мар 20, 21:29    [22100204]     Ответить | Цитировать Сообщить модератору
 Re: Как перекомпилировать системный модуль?  [new]
VirtaOtec
Member

Откуда:
Сообщений: 16
Благодарность.
16 мар 20, 21:46    [22100208]     Ответить | Цитировать Сообщить модератору
 Re: Как перекомпилировать системный модуль?  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3561
rgreat,

Часто это единственная возможность поправить проблему. Я в каждой версии Delphi обычно по 3-4 модуля правлю, раскидывая по проектам. Про инди я вообще молчу, она у меня заметно переписана ) Проблем не было.

Сообщение было отредактировано: 16 мар 20, 23:12
16 мар 20, 23:12    [22100253]     Ответить | Цитировать Сообщить модератору
 Re: Как перекомпилировать системный модуль?  [new]
rgreat
Member

Откуда:
Сообщений: 5722
makhaon,

Очень плохо когда это "часто".
16 мар 20, 23:16    [22100255]     Ответить | Цитировать Сообщить модератору
 Re: Как перекомпилировать системный модуль?  [new]
Василий 2
Member

Откуда:
Сообщений: 1016
makhaon
rgreat,

Часто это единственная возможность поправить проблему. Я в каждой версии Delphi обычно по 3-4 модуля правлю, раскидывая по проектам. Про инди я вообще молчу, она у меня заметно переписана ) Проблем не было.

А какие изменения делаешь?
17 мар 20, 10:41    [22100416]     Ответить | Цитировать Сообщить модератору
 Re: Как перекомпилировать системный модуль?  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3561
Василий 2,

ну вот текущие, XE6, правки (было, потом стало). я бы не советовал менять, частные правки:

function TCustomComboBoxEx.GetItemHt: Integer;
begin
  Result := Perform(CB_GETITEMHEIGHT, 0, 0); // returns 0 if Handle = 0
end;

function TCustomComboBoxEx.GetItemHt: Integer;
begin
  Result := 16;
end;

TDateTimePickerStyleHook.WMPaint

    if (seClient in Control.StyleElements) then

    if (seClient in Control.StyleElements) and
       (not Control.Focused or (ShowCheckBox and not GetChecked)) then

      InflateRect(R, -1, -1);

      if ShowCheckBox then InflateRect(R, -1, -1);

TDateTimePickerStyleHook.Paint

      if seClient in Control.StyleElements then

      if (seClient in Control.StyleElements) and
         (not Control.Focused or (ShowCheckBox and not GetChecked))
      then

TIBRestoreService.SetServiceStartOptions

    VersionCheck('11.0', 'Service API write mode '); {do not localize}

    //VersionCheck('11.0', 'Service API write mode '); {do not localize}

TIBXSQLVAR.GetAsString

        if FXSQLVAR.SqlDef = SQL_TEXT then
          SetLength(Result, str_len div GetCharSetSize);

        if FXSQLVAR.SqlDef = SQL_TEXT then
        begin
          i := Length(Result);
          NewSize := str_len div GetCharSetSize;
          SetLength(Result, NewSize);
          if NewSize > i then
            for i := i + 1 to NewSize do
             Result[i] := ' ';
        end;
17 мар 20, 18:46    [22100880]     Ответить | Цитировать Сообщить модератору
 Re: Как перекомпилировать системный модуль?  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11602
makhaon
ну вот текущие, XE6, правки
Посмотрел в Rio TDateTimePickerStyleHook стало как у тебя, остальное не поменялось
17 мар 20, 19:34    [22100916]     Ответить | Цитировать Сообщить модератору
 Re: Как перекомпилировать системный модуль?  [new]
shalamyansky
Member

Откуда:
Сообщений: 95
В настройках среды есть опция "Browsing path". Там указаны пути к исходникам, которые в обычном режиме не компилируются, а только используются для навигации при отладке. Линкуются же при сборке соответствующие им DCU из $(BDSLIB)\$(Platform)\debug или $(BDSLIB)\$(Platform)\release.

Если нужные PAS указать не в "Browsing path", а в "Library path", они будут компилироваться и линковаться оттуда. То же самое можно сделать и на уровне проекта, добавив нужные пути в "Search path".

Рекомендую, однако, не править "системные" PAS на месте их изначальной дислокации, а скопировать в особую папку, там модифицировать, и натравить на них компилятор через "Library path" или "Search path". Порожденные DCU при этом лягут туда же, куда и остальные DCU проекта, и будут прилинкованы вместо стандартных.
17 мар 20, 20:07    [22100922]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить