Как и при попытке переместить компоненты в более новые версии Delphi, Borland breaks compatibility by renaming, hiding, or removing various classes used by design time code.Что делать с ExptIntf и ToolIntf и TIExpert?
Сегодняшний случай включает библиотеку кода, которую мы купили много лет назад, для которой у нас исходный код. Попытка установить пакет «время разработки» в Delphi 7 IDE терпит неудачу, когда блок ExptIntf
не найден:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Contoso3Const, StdCtrls, ExtCtrls, ContosoRpt, DBTables, ContosoDataWz, ContosoExtra,
ExptIntf,
ToolIntf, ContosoWizard, ActiveX;
Нет проблем. Мы прокомментируем ссылку. Но тогда другой блок, ToolIntf
не найден:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Contoso3Const, StdCtrls, ExtCtrls, ContosoRpt, DBTables, ContosoDataWz, ContosoExtra,
//ExptIntf,
ToolIntf,
ContosoWizard, ActiveX;
Нет проблем. Мы прокомментируем ссылку. Это когда начинается настоящее веселье.
Класс TIExpert
не найден:
{$INCLUDE compilers.inc}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Contoso3Const, StdCtrls, ExtCtrls, ContosoRpt, DBTables, ContosoDataWz, ContosoExtra,
{$IFDEF DELPHI_6_UP}
//They've been removed in D6
//ExptIntf, ToolIntf,
{$ELSE}
ExptIntf, ToolIntf,
{$ENDIF}
ContosoWizard, ActiveX;
type
TContosoIDEWizard = class(TIExpert)
public
...
Быстрый поиск в Google говорит, что the code will never work in Delphi 6:
Это старый стиль OTA, который амортизируется в Д4 и ушел в D6. Вам нужно будет написать , используя стиль интерфейса OTA, введенный в D4.
В плакате не упоминается, какой новый стиль интерфейса OTA представлен в D4.
Учитывая, что я собираюсь придется повторно написать два класса в коде 3 партии:
TContosoIDEWizard = class(TIExpert)
public
SourceBuffer: PChar;
function GetName: string; override;
function GetComment: string; override;
function GetGlyph: HICON; override;
function GetStyle: TExpertStyle; override;
function GetState: TExpertState; override;
function GetIDString: string; override;
function GetAuthor: string; override;
function GetPage: string; override;
procedure Execute; override;
function CreateForm(Report : TCustomContosoRep; const FormIdent : string; VarList : TStrings) : TMemoryStream;
function CreateSource(const UnitIdent, FormIdent: string; VarList : TStrings): TMemoryStream;
end;
TNewContosoReport = class(TIExpert)
function GetName: string; override;
function GetComment: string; override;
function GetGlyph: HICON; override;
function GetStyle: TExpertStyle; override;
function GetState: TExpertState; override;
function GetIDString: string; override;
function GetAuthor: string; override;
function GetPage: string; override;
function GetMenuText: string; override;
procedure Execute; override;
end;
что же переписывают их в? Я предполагаю, что это так же просто, как использование другого имени базового класса, который содержит все те же методы, и никакой реальной перезаписи кода (кода, который я не писал) потребуется.
Примечание: Идентичность библиотеки 3-й партии было плохо затемненный для вашей безопасности
Примечание:
- Tagged
delphi-5
; поскольку это IDE, я перехожу от - С меткой
delphi-7
; поскольку это IDE, я перехожу к - с тегом
delphi-6
; как это IDE, который сломал функционирующий код - Tagged
delphi
, как это инструмент развития, мы говорим о
Это ** очень ** старый API и считался устаревшим во время D7. Новый старый код 'использует ToolsAPI'. –
«Рутинное отсутствие обратной совместимости»?Это произошло один раз (когда Unicode был добавлен с D2009). Изменения, которые вы упомянули, не были «обычными», и были объявлены две версии заранее (D4-> D6) и задокументированы. Borland долгое время не занималась Delphi. Если вы собираетесь жаловаться, по крайней мере, жалуйтесь на фактические вопросы. :-) (Это не имеет особого смысла, однако, когда ваша жалоба заключается в том, чтобы перейти от продукта Y2K к продукту ~ 2002 года, которому еще более десяти лет. Я уверен, что люди переходят с 16-разрядной версии Win 3.1 на Win 95 сегодня тоже имеет дело с серьезными проблемами.) :-D –
@ Я не могу поверить, что вы, наконец, покидаете Delphi 5 и переходите в новое время. О, подождите ..... ;-) –