Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
11-1188392350
Ruzzz
2007-08-29 16:59
2008.04.27
Не компилирует подменяемый system.pas


15-1205186003
antonn
2008-03-11 00:53
2008.04.27
Вопрос по администрированию (win2k/xp)


15-1205755222
@!!ex
2008-03-17 15:00
2008.04.27
Контроль ширины канала


15-1205696230
@!!ex
2008-03-16 22:37
2008.04.27
Проблемы с точкой доступа


3-1196323881
MaShechka
2007-11-29 11:11
2008.04.27
Название колонок что делать???