Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
jpeg파일들을 dll로 작성해서 사용하는 방법
여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다.
아시는 분은 좀 가르쳐 주십시오.
6
COMMENTS
원영준
•
1999.03.09 22:20
안녕 하십니까 !
델파이 초보자로써 이런 곳을 보니 매우 기쁩니다.
당분간은 ROM족 신세를 면치 못하겠지만 언젠가는 정보도 제공해 줄수 있는 날이 오길 ....
MAIN FORM에서 DLL로 SELF(TWindControl)를 넘기고 DLL에서 TForm1.CREATE 에 아규먼트로 주었는데 잘 안되네요!
누가좀 도와 주세요!!!!!
0
0
삭제
수정
댓글
글쎄요
•
1999.06.11 00:02
이승윤 께서 말씀하시기를...
> 여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다.
> 아시는 분은 좀 가르쳐 주십시오.
///////
여기를 참조하셔요.
http://www.borland.com/devsupport/delphi/qanda/FAQ2626D.html
0
0
삭제
수정
댓글
안치봉
•
1999.03.10 04:15
소스는 잘~ 받았습니다.
소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다).
procedure TForm1.b1Click(Sender: TObject);
var
mi : TMenuItem;
HInst : THandle;
fPtr : TFarProc;
_do : DODO;
begin
HInst := LoadLibrary('DLLTEST.dll');
if HInst <> 0 then
begin
@_do := GetProcAddress(HInst, '_do');
if @_do <> nil then _do(self, application);
FreeLibrary(HInst);
end;
end;
그리고 DLL 부분에도 잘못된 부분이 있는것 같습니다.
(아래는 제가 나름대로 테스트할때 쓴 DLL 부분입니다. 이건 잘 되거든요)
procedure _do(x:TWinControl; y:TApplication); stdcall;
var
f: TForm;
begin
f := TForm.Create(y);
f.ShowModal;
f.free;
end;
도움이 되셨는지 모르겠군요^^;
DLL 에 대해 공부하시려면 델파이의 도움말중 색인에서 DLL 에대해 보시면 많은 도움이 될겁니다~
0
0
삭제
수정
댓글
구창민
•
1999.06.10 20:16
이승윤 께서 말씀하시기를...
> 여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다.
> 아시는 분은 좀 가르쳐 주십시오.
이승윤님 안녕하세요?
아래는 하이텔동호회에서 활동중이신 황용호님이 쓰신
리소스에서 JPEG읽어 출력하기 입니다.
Image파일을 dll로 왜 만들려고 하시는지?
아래 방법은 dll로 만드는 것은 아니지만 참조해 보시기 바랍니다.
/////////////////////////////////////////////////////////////////
JPEG파일을 리소스로 만들고 그 리소스를 TImage를 이용하여
출력하려면 다음과 같이 하시면 됩니다.
우선 리소스 파일을 만들어야 하는데 델파이는 변변한 리소스 에디터를
제공하지 않습니다. 있어봤자 이미지 에디터 정도겠지요...
그렇지만 리소스 컴파일러는 제공합니다. brcc32.exe라는 프로그램이죠.
그래서 .RC파일을 직접 만들어서 컴파일 하여야 합니다.
우선 빈 텍스트 파일을 하나 만들어서 다음의 한 줄을 써 넣습니다.
resname 24 DISCARDABLE "JPEGfilename.jpg"
resname에는 사용하기 원하는 리소스 이름을 넣으시고 JPEGfilename.jpg에는
리소스로 만들 파일의 풀패스명을 적어 주면 됩니다.
리소스 파일이 여러개라면 갯수만큼 위의 내용을 추가해 주시면 됩니다.
24라는 숫자는 리소스 타입의 ID인데 JPEG는 예약된 리소스 타입이 없으므로
예약된 숫자 + 1로 정한 것입니다. 24이상이면 어떤 수이거나 상관 없는데
아래 소스의 MakeIntResource내의 인자와 일치해야 합니다.
여튼 이렇게 만드신 후 확장자를 .rc로 해서 저장합니다. 편의상 MyRes.rc라고
한다면 커맨드 라인에서 brcc32.exe MyRes.rc라고 치면 MyRes.res파일이 만들어
집니다.
그런 후 이제 이 리소스 파일을 프로그램에 추가하여야겠지요.
프로젝트의 소스를 여시면 {$R *.res}라고 적힌 부분이 있을 겁니다.
그 밑에 {$R MyRes.res}라고 추가합니다. 여기서 MyRes.res는 brcc32로 만들어진
리소스 파일 이름입니다.
이렇게 하셔서 컴파일 하시면 우선 리소스는 실행파일에 포함된 겁니다.
다음으로...
리소스에서 JPEG image를 읽어서 TImage 콤포넌트로 출력을 하려면
다음과 같은 코드를 출력하고자 하는 부분에 넣어 주시면 됩니다.
TGraphic에는 리소스에서 직접 데이터를 읽어오는 방법을 지원하지
않으므로 스트림을 이용하셔야 합니다.
편의상 버튼 클릭 이벤트에서 하는 것으로 하겠습니다. 아래는 소스입니다.
procedure TForm1.Button1Click(Sender: TObject);
var
ResStream : TResourceStream;
JPEGImage : TJPEGImage;
begin
JPEGImage := TJPEGImage.Create;
ResStream := TResourceStream.Create(hInstance, 'resname',
MakeIntResource(24));
try
JPEGImage.LoadFromStream(ResStream);
Image1.Picture.Assign(JPEGImage);
finally
ResStream.Free;
JPEGImage.Free;
end;
end;
TJPEGImage를 사용하므로 uses절에 jpeg를 추가하셔야 합니다.
소스 중 TResourceStream.Create에 있는 resname에다가 위의 .rc파일에서
지정한 리소스이름을 적어 주시면 됩니다.
소스가 간단하므로 쉽게 이해가 가실겁니다.
이렇게 하시면 jpeg파일이 실행파일과 합쳐져 출력됩니다.
참고가 되셨으면 합니다.
그럼 이만...
0
0
삭제
수정
댓글
신인재
•
1999.03.10 04:08
원영준 wrote:
> 안녕 하십니까 !
> 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다.
> 당분간은 ROM족 신세를 면치 못하겠지만 언젠가는 정보도 제공해 줄수 있는 날이 오길 ....
>
>
> MAIN FORM에서 DLL로 SELF(TWindControl)를 넘기고 DLL에서 TForm1.CREATE 에 아규먼트로 주었는데 잘 안되네요!
>
> 누가좀 도와 주세요!!!!!
아래에 MDI Child폼을 넣은 DLL의 예제를 올림니다.
도움이 되시길....
Main에서 procedure ShowMDIChildForm(MainApp : TApplication);
를 호출하면 되겠음다
library MDIForms;
uses
SysUtils,
Classes,
Forms,
Windows,
//MDI Child폼의 실제 unit
ChildU in 'ChildU.pas' {ChildForm};
var
DLLApp : TApplication;
procedure MyDLLProc(Reason: Integer);
begin
if Reason = DLL_PROCESS_DETACH then
{ DLL이 메모리에서 내려갈때}
{ 애플리케이션 포인터를 원위치 시킨다. }
if Assigned(DllApp) then
Application := DllApp;
end;
procedure ShowMDIChildForm(MainApp : TApplication);
var
Child : TChildForm;
begin
if not Assigned(DllApp) then
begin
DllApp := Application;
Application := MainApp;
end;
Child := TChildForm.Create(Application.MainForm);
Child.Show;
end;
exports ShowMDIChildForm;
begin
{ DllApp 변수를 초기화 한다. }
DllApp := nil;
DLLProc := @MyDLLProc;
end.
파워러브 델파이 98년 8월호에서 퍼왔음다....^^!!!
0
0
삭제
수정
댓글
안치봉
•
1999.03.10 02:11
원영준 wrote:
> 안녕 하십니까 !
> 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다.
> 당분간은 ROM족 신세를 면치 못하겠지만 언젠가는 정보도 제공해 줄수 있는 날이 오길 ....
>
>
> MAIN FORM에서 DLL로 SELF(TWindControl)를 넘기고 DLL에서 TForm1.CREATE 에 아규먼트로 주었는데 잘 안되네요!
>
> 누가좀 도와 주세요!!!!!
안녕하세요!!.
음....죄송하지만 테스트 해보신 전체(DLL 부분과 DLL 을 호출하는 부분) 소스를 이곳에 올리시거나 혹은 저에게 메일로 보내주셔야 분석이 일단은 가능하겠습니다.
생각하신 방법(DLL에 들어있는 form을 child로 띄우는 방법)은 불가능하지 않은걸로 알고 있습니다. 아마도 구현하는 부분이 잘못된것 같군요.
감사합니다.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
원영준
•
1999.03.09 22:20
3
COMMENTS
/
0
LIKES
DLL에 들어있는 form을 child로 띄우는 방법좀
안치봉
•
1999.03.10 04:15
소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
신인재
•
1999.03.10 04:08
원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
안치봉
•
1999.03.10 02:11
원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
송기원
•
1999.06.10 19:25
1
COMMENTS
/
0
LIKES
Windows 95의 활성프로그램 목록얻는방법?
구창민
•
1999.06.10 20:22
송기원 께서 말씀하시기를... > windows 95에서 실행중인 모든 프로그램의 Handle을 참조할려고 합니다. ...
이승윤
•
1999.06.10 17:52
6
COMMENTS
/
0
LIKES
jpeg파일들을 dll로 작성해서 사용하는 방법
여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다. 아시는 분은 좀 가르쳐 주십시오.
원영준
•
1999.03.09 22:20
안녕 하십니까 ! 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. 당분간은 ROM족 신세를 면치 못하겠...
글쎄요
•
1999.06.11 00:02
이승윤 께서 말씀하시기를... > 여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다. ...
안치봉
•
1999.03.10 04:15
소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
구창민
•
1999.06.10 20:16
이승윤 께서 말씀하시기를... > 여러개의 jpeg파일을 dll형태로 만들어서 사용하는 방법을 모르겠습니다. ...
신인재
•
1999.03.10 04:08
원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
안치봉
•
1999.03.10 02:11
원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
김동희
1999.06.10 09:56
0
COMMENTS
/
0
LIKES
서버와 MIDAS와의 관계
박근영
•
1999.03.09 04:01
2
COMMENTS
/
0
LIKES
stringgrid에서 혹시 특정 칼럼제외 선택되나요????
안치봉
•
1999.03.09 06:01
박근영 wrote: > 안녕하세요.... > 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... > 사이트...
박근영
•
1999.03.09 17:39
답변 감사합니다... 건강하세요.....
neperz
1999.06.10 09:01
0
COMMENTS
/
0
LIKES
126번과 비슷한 질문인데요....
김성률
1999.03.09 08:54
0
COMMENTS
/
0
LIKES
머리 아픈 에러 누가 잡아 주세요[4]
정청환
•
1999.06.10 07:24
1
COMMENTS
/
0
LIKES
stringgrid에서 한 라인(Row)을 삭제
김성동
•
1999.06.11 00:10
StringGrid의 소스를 보면 protected 멤버로 DeleteRow란 프로시져가 있습니다. 그러니까 StringGrid에서 ...
박근영
•
1999.03.09 04:01
2
COMMENTS
/
0
LIKES
stringgrid에서 혹시 특정 칼럼제외 선택되나요????
안치봉
•
1999.03.09 06:01
박근영 wrote: > 안녕하세요.... > 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... > 사이트...
박근영
•
1999.03.09 17:39
답변 감사합니다... 건강하세요.....
정청환
•
1999.06.10 07:21
1
COMMENTS
/
0
LIKES
stringgrid에서 한 라인(Row)을 삭제
김태균
•
1999.06.10 18:23
정청환 께서 말씀하시기를... > stringgrid에서 한 라인(Row)을 삭제 > > stringgrid에서 한 라인(Row)...
chobo
•
1999.06.10 07:13
4
COMMENTS
/
0
LIKES
ShellExecute에 대해서
박근영
•
1999.03.09 04:01
안녕하세요.... 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... 사이트 내용이 좋아 자주 들...
최석기
•
1999.06.10 09:22
chobo 께서 말씀하시기를... > 프로그램에서 특정프로그램을 동작시킬려고 합니다. > ShellExecute()함수...
안치봉
•
1999.03.09 06:01
박근영 wrote: > 안녕하세요.... > 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... > 사이트...
박근영
•
1999.03.09 17:39
답변 감사합니다... 건강하세요.....
만득이
1999.06.10 07:01
0
COMMENTS
/
0
LIKES
익스플로러의 페이지 내용을 가져오려면???
김성률
•
1999.03.06 05:11
1
COMMENTS
/
0
LIKES
머리 아픈 에러 누가 잡아주세요[3]
안치봉
•
1999.03.08 00:34
김성률 wrote: > 먼저 대단히 죄송합니다. 이해를 도우기 위한 측면만 생각하다 보니 제가 봐도 말도 않되...
최현호
1999.06.10 05:56
0
COMMENTS
/
0
LIKES
ODBC를 델파이로..
이창석
•
1999.03.08 00:11
5
COMMENTS
/
0
LIKES
dbchart
최현호
•
1999.06.10 05:53
델파이상에서 다른 컴퓨터의 공유디렉토리를 네트워크 드라이브로 잡는 방법이 있나요? 델파이는 4.0을 ...
안치봉
•
1999.03.10 03:12
이창석 wrote: > 반갑습니다. > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. > 몇일째 풀리지 않는...
구창민
•
1999.06.10 20:04
최현호 께서 말씀하시기를... > 델파이상에서 다른 컴퓨터의 공유디렉토리를 네트워크 드라이브로 잡는 ...
이창석
•
1999.03.12 00:33
안치봉 wrote: > 이창석 wrote: > > 반갑습니다. > > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. ...
신인재
•
1999.03.12 04:33
> procedure TForm1.Button1Click(Sender: TObject); > var > i,y:integer; > begin > if opendialo...
손진운
1999.06.10 05:52
0
COMMENTS
/
0
LIKES
다시 올림
정성호
•
1999.06.10 05:05
2
COMMENTS
/
0
LIKES
^^..오늘도 궁금해서요...^^
김성률
•
1999.03.06 05:11
먼저 대단히 죄송합니다. 이해를 도우기 위한 측면만 생각하다 보니 제가 봐도 말도 않되는 것을 소스라고 ...
안치봉
•
1999.03.08 00:34
김성률 wrote: > 먼저 대단히 죄송합니다. 이해를 도우기 위한 측면만 생각하다 보니 제가 봐도 말도 않되...
이 재포
•
1999.06.10 01:43
1
COMMENTS
/
0
LIKES
DLL을 만드는데 고수들의 지도를 부탁합니다.
공대규
•
1999.06.10 22:35
델파이에서 ActiveForm 어플리케이션으로 만드시는 것이 좋을 듯 합니다. 일단 File-New-ActiveX-ActiveFo...
이 재포
•
1999.06.10 01:42
5
COMMENTS
/
0
LIKES
DLL을 만드는데 고수들의 지도를 부탁합니다.
기련이
•
1999.03.05 01:12
저도 프로그램을 테스트 해 보았는데 문제가 생겼어요. body의 내용이 정상적으로 나타나지 않고 마치 암...
안치봉
•
1999.03.05 23:06
기련이 wrote: > 저도 프로그램을 테스트 해 보았는데 문제가 생겼어요. > body의 내용이 정상적으로 나...
기련이
•
1999.03.06 02:33
도와주셔서 정말 감사합니다. 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고, 메일서버는 MS EXCHANGE서...
안치봉
•
1999.03.06 04:46
기련이 wrote: > 도와주셔서 정말 감사합니다. > > 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고, > ...
기련이
•
1999.03.10 02:30
덕분에 문제를 해결하였습니다. Var InStr, OutStr: TStringStream; Begin InStr := TStringStr...
이용주
1999.06.10 00:55
0
COMMENTS
/
0
LIKES
런타입 타입 정보
이승윤
1999/06/10 17:52
Views
380
Likes
0
Comments
6
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
델파이 초보자로써 이런 곳을 보니 매우 기쁩니다.
당분간은 ROM족 신세를 면치 못하겠지만 언젠가는 정보도 제공해 줄수 있는 날이 오길 ....
MAIN FORM에서 DLL로 SELF(TWindControl)를 넘기고 DLL에서 TForm1.CREATE 에 아규먼트로 주었는데 잘 안되네요!
누가좀 도와 주세요!!!!!