Текущий архив: 2008.04.27;
Скачать: CL | DM;
Вниз
ресурсы в dll Найти похожие ветки
← →
Igor23 (2008-03-26 17:50) [0]ПОМОГИТЕ КТО ЧЕМ МОЖЕТ
Вызов .dll:
//////////////////////////////////////////////////////////////////////////
implementation
procedure ShowMyForm(Aowner:TComponent); external "Project1.dll";
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMyForm(Self);
end;
//////////////////////////////////////////////////////////////////////////
сама dll
library Project1;
{ ..........}
uses
SysUtils,
Classes,
Unit1 in "Unit1.pas" {Form1};
{$R *.res}
procedure ShowMyForm(AOwner:TComponent);
var
MyForm:TForm1;
begin
MyForm:=TForm1.Create(AOwner);
MyForm.ShowModal;
MyForm.Free;
end;
exports ShowMyForm;
begin
end.
///+ unit1 в dll имеетвид, здесь ОШИБКА памяти возникает при создании формы/////////////
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DXClass, DXSprite, DXInput, DXDraws, StdCtrls;
type
TForm1 = class(TDXForm)
//TForm1 = class(TForm) пробовал и так всё равно ошибка(((
DXDraw1: TDXDraw;
DXImageList1: TDXImageList;
DXInput1: TDXInput;
....................................................................
procedure TForm1.FormCreate(Sender: TObject);
begin
I:=true;
with TBOSS.Create(Dxspriteengine1.Engine) do
begin
PixelCheck := True;
Image := form1.dxImageList1.Items.Find("BOSS");
x:=350;
y:=10;
Width := Image.Width;
Height := Image.Height;
end;
with TPlayerSprite.Create(Dxspriteengine1.Engine) do
begin
PixelCheck := True;
Image := form1.dxImageList1.Items.Find("Pla");
x:=350;
y:=500;
Width := Image.Width;
Height := Image.Height;
end;
end;
← →
Сергей М. © (2008-03-26 18:45) [1]К терапевту.
← →
Igor23 (2008-03-26 20:41) [2]
> К терапевту.
спасибо за ах...ное пояснение, а я то думал в чом проблема ))))
← →
Johnmen © (2008-03-26 20:46) [3]
> ПОМОГИТЕ КТО ЧЕМ МОЖЕТ
Выслал 10 рублей.
← →
Терапевт (2008-03-26 20:55) [4]Как минимум, в этом:
Image := form1.dxImageList1.Items.Find("BOSS");
Я бы послал к хирургу...
← →
Igor23 (2008-03-26 21:37) [5]
> Image := form1.dxImageList1.Items.Find("BOSS");
писал и без form1 не пойму млин после таких постов к ПСИХИАТРУ пойду ))
← →
Igor23 (2008-03-26 21:46) [6]
> Выслал 10 рублей
спасибо большое за спонсорскую помощь в развитие сего проекта, теперь наберу в помощь высококвалифицированных спецов с достойной оплатой, всё ок бабки теперь у меня есть ;-)
← →
Терапевт (2008-03-26 22:20) [7]А не в dll код работает нормально?
← →
Igor23 (2008-03-26 22:30) [8]
> А не в dll код работает нормально?
дв все в норме
← →
Igor23 (2008-03-26 22:43) [9]В обычном проекте все работает, а вот если из длл вызывать то ошибка по адресу.... а потом форма сама вылетает, так думаю что dll почему то не признаёт в formcreate это: with TBOSS.Create(Dxspriteengine1.Engine.Parent) do и with TPlayerSprite.Create(Dxspriteengine1.Engine) do
описание таково:
type
TBoSS = class(TImageSprite)
protected
procedure DoMove(MoveCount: Integer); override;
procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
public
constructor Create(AParent: TSprite); override;
destructor Destroy; override;
end;
TPlayerFa = class(TImageSprite)
protected
procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
procedure DoMove(MoveCount: Integer); override;
public
constructor Create(AParent: TSprite); override;
destructor Destroy; override;
end;
...................................................................
..................................................................
constructor TBOSS.Create(AParent: TSprite);
begin
inherited Create(AParent);
Image := form1.DXImageList1.Items.Find("BOSS");
Width := Image.Width;
Height := Image.Height;
end;
constructor TPlayerFa.Create(AParent: TSprite);
begin
inherited Create(AParent);
Image := form1.DXImageList1.Items.Find("Pula");
Width := Image.Width;
Height := Image.Height;
Collision;
end;
в стандартном приложении это работает...а почему в dll не хочет не пойму, вроде используется такая же Form1
← →
DrPass © (2008-03-27 01:08) [10]
uses
ShareMem,
SysUtils,
Classes,
Unit1 in "Unit1.pas"
Аналогично, добавить ShareMem в uses в dpr-файле приложения, причем в самый верх.
Еще не помешало бы передать в dll объекты Application и Screen...
← →
Терапевт (2008-03-27 03:00) [11]>DrPass © (27.03.08 01:08) [10] В принципе согласен -)
Но все же хочу получить ответ на вопрос: где создается экземпляр form1?
← →
clickmaker © (2008-03-27 11:30) [12]
> в стандартном приложении это работает...
запусти отладчик - он помогает
Это я тебе как доктор говорю
← →
DrPass © (2008-03-27 11:47) [13]
> Но все же хочу получить ответ на вопрос: где создается экземпляр
> form1?
Кстати, да. Не обратил внимания. Это, собссно, и причина
← →
Igor23 (2008-03-28 00:27) [14]
> Но все же хочу получить ответ на вопрос: где создается экземпляр
> form1?
Покажите плиз как его создать то?
← →
Сергей М. © (2008-03-28 00:31) [15]
> где создается экземпляр
> > form1?
>
>
> Покажите плиз как его создать то?
>
Вот как ты ни упирался, а таки придется двинуть к терапевту)
Какие тебе нафих "ресурсы в dll", если ты основ не знаешь ?)
← →
DrPass © (2008-03-28 09:54) [16]
> Igor23 (28.03.08 00:27) [14]
>
> > Но все же хочу получить ответ на вопрос: где создается
> экземпляр
> > form1?
>
>
> Покажите плиз как его создать то?
А никак. Пока не сможешь четко понимать, какой смысл имеет каждое написанное тобой слово в твоей проге, дальше идти тебе не стоит
← →
Leonid Troyanovsky © (2008-03-28 23:12) [17]
> Igor23 (28.03.08 00:27) [14]
> Покажите плиз как его создать то?
Дык, так прямо и создавать.
Кто ж тебя, болезного, принудил к длл.
--
Regards, LVT.
← →
Denis__ © (2008-03-29 09:03) [18]
> ПОМОГИТЕ КТО ЧЕМ МОЖЕТ
C такими призывами в переходах надо стоятьЮ ане по форумам лазать.
← →
Igor23 (2008-03-29 12:56) [19]
> C такими призывами в переходах надо стоятьЮ ане по форумам
> лазать.
и где ты тут призыв увидел.....нах ты вообще откликаешься и засираешь ветку?
Страницы: 1 вся ветка
Текущий архив: 2008.04.27;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.018 c