Доброго дня! Я тут полазил, полазил и пришёл к выводу, что причиной неработы компонента DXWaveList, DXWave и DXPlay, явилось то, что я пытаясь починить DelphiX, использовал первый способ "починки", без редактирывания IDE и теперь у меня были проблемы с тремя компонентами ( может ещё будут c другими ).
Я очень прошу, если у кого есть версия DelphiX с редактирыванным IDE, дайте мне, или хоть скажите где можно скачать такое, чтобы все работало и было готово к установке.
Далее я приложил статью с инструкцией по установке, которой пользовался.
Если вы знаете, как отредактировать эти IDE, то помогитемне ПОЖАЛУЙСТА!
Мой ящик:
battlemakc@yandex.ruСтатья:
Автор: Michael Wilson
Эта статья покажет вам, как переделать DelphiX под Delphi 6.0. Этот процесс займёт 15-20 минут.
8<------------------
Шаг 1:После распаковки DelphiX в любую директорию, запустите Delphi6. Не пытайтесь запустить Install_for?.exe или другие виды установки.
Шаг 2:Зайдите в File...Open: DelphiX_for5.dpk и Delphi 6 преобразует пакет для вас.
[p align=center][img=http://www.gamedev.ru/coding/20528a.jpg]
Сохраните пакет как DelphiX_for6.dpk.
Шаг 3:Нажмите кнопку Install. Компилятор найдёт ошибки. Все они в файле DXRender.pas.
Вот фрагмент:
Код:
var
NilGUID : TGUID absolute 0;
Надо изменить на :
Код:
var
NilGUID : TGUID;
Шаг 4:Первый тип ошибок - несовпадение ординат в машинном коде. Где-то 40 - 50 Ошибок такого типа.
[p align=center][img=http://www.gamedev.ru/coding/20528b.jpg]
Вот как их исправить...
mov eax,Dest; add eax,TDXRMachine_Color.R+1 // Плохой сегмент
изменить на:
mov eax,Dest; add eax,BYTE(TDXRMachine_Color.R+1) // Хороший сегмент
Вам это придётся делать при каждой ссылке ASM на TDXRMachine_Color. Вы можете заменять эти строки при помощи Search and Replace.
Шаг 5:Второй тип ошибок нам придётся корректировать, они связаны с синтаксисом ассемблера. Есть 10 - 20 ошибок этого типа, и все они происходят рядом с _AddTable и _SubTable.
Вот пример как исправить их...
movzx edx,byte [offset _AddTable+edx+ebx]
Изменить так:
movzx edx,byte [offset (_AddTable+edx+ebx)]
В конце компилятор покажет одно предупреждение и одну фатальную ошибку.
Шаг 6:И последняя ошибка из-за DsgnIntf.
[p align=center][img=http://www.gamedev.ru/coding/20528c.jpg]
Есть два пути решения этой проблемы:
Без IDE редактирования:
Переделайте DXReg.pas следующим образом:
Код:
unit DXReg;
interface
uses
Windows, SysUtils, Classes, Forms, Dialogs, Graphics, TypInfo,
DXDraws, DXSounds, DIB, Wave, DXInput, DXPlay, DXSprite,
DXClass;
procedure Register;
implementation
const
SNone = '(None)';
SSettingImage = '&Image...';
SSettingWave = '&Wave...';
SDXGFileFilter = 'DXG file(*.dxg)|*.dxg|All files(*.*)|*.*';
SDXGOpenFileFilter = 'DXG file(*.dxg)|*.dxg|Bitmap file(*.bmp)| *.bmp|All files(*.*)|*.*';
SDXWFileFilter = 'DXW file(*.dxw)|*.dxg|All files(*.*)|*.*';
SDXWOpenFileFilter = 'DXW file(*.dxw)|*.dxw|Wave file(*.wav)| *.wav|All files(*.*)|*.*';
SSinglePlayer = '&Single player';
SMultiPlayer1 = 'Multi player &1';
SMultiPlayer2 = 'Multi player &2';
SOpen = '&Open...';
SSave = '&Save..';
procedure Register;
begin
RegisterComponents('DelphiX',
[TDXDraw,
TDXDIB,
TDXImageList,
TDX3D,
TDXSound,
TDXWave,
TDXWaveList,
TDXInput,
TDXPlay,
TDXSpriteEngine,
TDXTimer,
TDXPaintBox]);
end;
end.
С этим кодом вы не сможете использовать редакторы, которые идут вместе с DelphiX.
С редактированием IDE (Экспертам):
1) В DXReg.pas измените в USES 'DsgnIntf' на 'DesignIntf'.
2) Добавить 'DesignEditors' в uses и в unit где понравится.
3) Добавить 'DesignIDE' в НЕОХОДИМОМ разделе пакета.
3) Добавить 'DesignIDE' в разделе REQUIRES в пакете DelphiX_for6.dpk. Для этого необходимо открыть его в режиме 'Project/View Source' и дописать где нужно.
Это проверено и работает во всех версиях Delphi 6.
Англоязычная версия статьи находится по адресу:
http://turbo.gamedev.net/delphixd6.asp.
Автор: Michael Wilson (
wilson@no2games.com).
Это проверено и работает во всех версиях Delphi 6.
Англоязычная версия статьи находится по адресу:
http://turbo.gamedev.net/delphixd6.asp.
Автор: Michael Wilson (
wilson@no2games.com).