일반 윈도우 어플리케이션으로 만들었을때는 모든것이 제대로 동작합니다.
bmp화일을 리소스로 만들어서 {R pio.res} 라고 implementation 밑에 추가하였구요,
이 pio.res는 ResStream : TResStream 와 pio : TBitmap 형식으로 만든변수에,
ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
pio.LoadFromStream(ResStream);
이렇게 썼습니다. 그러니까 그냥 컴파일 했을때는 실행되길래,
이걸 템플릿으로 만들어서 액티브엑스 폼에다가 놓고, 전역변수들을 public에다가
선언해놓고 web deploy로 컴파일 하니까 에러없이 컴파일 됩니다.
이때, Web Deploy 옵션에서 파일추가를 한다음에, ocx,res,bmp화일을 다 포함했습니다.
근데 막상 웹으로 올리고 실행을 해보면은 위의 이벤트가 발생할때마다,
아래와 같은 에러가 납니다.
Access violation at addres 017D9786 in module 'APROJ1.OCX', Read of address FFFFFFFF.
다른 것은 모두 액티브엑스에서 되는데, 이 이미지 로딩부분에서만 에러가 납니다.
이거는요 액티브엑스로 만든 폼에 버튼을 누를때마다 이미지를 움직이는 것이거든요.
그러니까 이 에러를 해결할 방법이나 아니면 액티브엑스에서 이미지를 로딩할 수 있는
방법을 알고계시면 도와주세요... 이것만 벌써 2주째 하고 있습니다.... T.T
아래는 소스 입니다.
[Add.Code]
aProj1.ocx=aProj1.ocx
pio.RES=pio.RES
pio.bmp=pio.bmp
[aProj1.ocx]
file=file:///f:/aProj1.cab
clsid={6D165D85-428A-11D5-8A2A-00E029657B44}
RegisterServer=yes
FileVersion=1,0,0,0
[pio.RES]
file=file:///f:/aProj1.cab
[pio.bmp]
file=c:windowssystempio.bmp
Destdir=11
RegisterServer=yes
1 rcdata "c:windowssystempio.bmp"
위와 같이 rc 화일을 만든후에 brcc32 pio.rc해서 res화일을 만들었습니다.
<프로그램>
var
pio : TBitmap;
ResStream : TResourceStream;
ox, oy, Degrees, Editi, EditJ : Integer;
HInstance : THandle;
begin
Pio := Tbitmap.Create;
ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
pio.LoadFromStream(ResStream);
ox := 150;
oy := 150;
Degrees := 0;
ImageRotated.Canvas.Draw(ox,oy,pio);
ResStream.free;
pio.free;
end;