Q&A

  • api ->델파이 변환 좀 도와주세요..
api책 하나를 샀는데요

c++ 개념으로 예제를 전개하더군요.

한번 델파이로 돌려서 구현해 보고 싶은데 어디서 부터 변경을 해야

할지 모르겠습니다. 여기 책 맨 처음 나오는 기초 소스거든요

참고삼아 보게 변환시켜줄 분 없으신가요?



---------------------------------------------------------------------
#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPSTR lpszClass="First";

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
                  ,LPSTR lpszCmdParam,int nCmdShow)
{
        HWND hWnd;
        MSG Message;
        WNDCLASS WndClass;
        g_hInst=hInstance;
        
        WndClass.cbClsExtra=0;
        WndClass.cbWndExtra=0;
        WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
        WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
        WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
        WndClass.hInstance=hInstance;
        WndClass.lpfnWndProc=(WNDPROC)WndProc;
        WndClass.lpszClassName=lpszClass;
        WndClass.lpszMenuName=NULL;
        WndClass.style=CS_HREDRAW | CS_VREDRAW;
        RegisterClass(&WndClass);

        hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
                  CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
                  NULL,(HMENU)NULL,hInstance,NULL);
        ShowWindow(hWnd,nCmdShow);
        
        while(GetMessage(&Message,0,0,0)) {
                TranslateMessage(&Message);
                DispatchMessage(&Message);
        }
        return Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
        switch(iMessage) {
        case WM_DESTROY:
                PostQuitMessage(0);
                return 0;
        }
        return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
2  COMMENTS
  • Profile
    김해우 2002.10.18 19:39

    델파이의 폼과 같은 소스입니다. 그러니까 델파이 실행하시면 Application만들면 되는데..
    단, 소스의 용량의 크기가 달라요..
    그리고 직접 제작하실려면 소스에서 제작하면 됩니다.
    왠만한 델파이 책에 이와 같은 소스가 있는데 꼭 한번해보세요..
    그럼...
  • Profile
    최용일 2002.10.08 19:55
    안녕하세요. 최용일입니다.

    File/New해서 프로젝트 하나 만드시고 빈폼은 프로젝트에서 없애버리세요.

    그리고 Project/View Source메뉴클릭해서 보이는 프로젝트 소스에 아래와 같이 코딩하시면 될겁니다...

    program APIWindow; // APIWindow 프로젝트 이름

    uses
      Windows, Messages;

    {$R *.RES}

    var
        g_hInst: THandle;
    const
        lpszClass: LPSTR = 'First';

    function WndProc(hWnd: HWND; iMessage: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
    begin
        case iMessage of
            WM_DESTROY:
            begin
                PostQuitMessage(0);
                Result := 0;
                Exit;
            end;
        end;
        Result := DefWindowProc(hWnd, iMessage, wParam, lParam);
    end;

    function WinMain: Integer;
    var
        hWnd: THandle;
        AMessage: MSG; // = Message
        WndClass: TWNDCLASS;
    begin
          WndClass.cbClsExtra := 0;
          WndClass.cbWndExtra := 0;
          WndClass.hbrBackground := GetStockObject(WHITE_BRUSH);
          WndClass.hCursor := LoadCursor(0, IDC_ARROW);
          WndClass.hIcon := LoadIcon(0, IDI_APPLICATION);
          WndClass.hInstance := hInstance;
          WndClass.lpfnWndProc := @WndProc;
          WndClass.lpszClassName := lpszClass;
          WndClass.lpszMenuName := 0;
          WndClass.style := CS_HREDRAW or CS_VREDRAW;
          RegisterClass(WndClass);

          hWnd := CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW,
                      CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
                      0, 0, HINSTANCE, 0);
          ShowWindow(hWnd, SW_SHOW{nCmdShow});

          while (GetMessage(AMessage, 0, 0, 0)) do
          begin
                  TranslateMessage(AMessage);
                  DispatchMessage(AMessage);
          end;
          Result := AMessage.wParam;
    end;

    begin
        WinMain;
    end.

    ^^ 항상 즐코하세요...

    • 이추형
      2002.10.08 19:25
      짧게 말씀드리면 property는 어떤 하나의 객체에 대한 속성입니다. 속성..OOP(Object Oriented Programmin...
    • 정경철
      2002.10.08 22:44
      영상을 표시하는 부분의 Align 속성 값을 alClient 값으로 해보세요... alClient는 윈도우즈 크기에 따라 ...
    • 신강섭
      2002.10.08 22:42
      자료실에서 cf 플레이어 라는 것을 다운받아서 합 보세요... 실행되는 수준은 아드레날린을 본따만든것 같...
    • 김평국
    • 2002.10.08 09:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.10.08 19:46
      네트웍 프린터라면 가능합니다. ip를 가지는 독립된 프린터를 말합니다.
    • 델사랑
    • 2002.10.08 09:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.10.08 12:03
      hsr///////////////////////////////////////////////////// 소스 정리 없이 해보았습니다. 수식보다는 ...
    • 델사랑
      2002.10.08 20:46
      아직은 해보지는 않았지만 정말 감사합니다. 즐거운 하루 보내세요
    • 김길남
    • 2002.10.08 07:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.10.08 12:18
      게시판에 찾아보시면 이유는 많겠지만 가장 흔한 문제로 ToolBar의 font속성이 한글을 지원하는것으로 설...
    • 이재현
    • 2002.10.08 06:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2002.10.21 19:17
      안녕하세여. 타락임다. 우선 윈도에서 실행하는 프로세서 리스트를 얻어야 합니다. 그 담에 프로세서...
    • 칼짱
    • 2002.10.08 05:53
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.10.08 19:58
      안녕하세요. 최용일입니다. Type LIbrary에서 속성이나 메소드 추가하셔서 버튼이나 다른컴포넌트의 속...
    • 칼짱
      2002.10.09 20:27
      감사합니다. 용일님. ^^; 항상 가려운 곳을 긁어 주시는 군요. ^^; 잘 되었습니다. ^^;
    • 이영근
    • 2002.10.08 05:42
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 주병현
      2002.10.08 10:17
      dialog의 onClose부분에서 현재 닫혀두 되는 상황인지 검사해서요 닫히면 않될경우 action:=caNone;로...
    • 이영근
      2002.10.08 18:27
      델파이의 세미콜론은 왜 c 와 다를까?......^^;;
    • goodlsw
    • 2002.10.08 05:36
    • 2 COMMENTS
    • /
    • 2 LIKES
    • 김해우
      2002.10.18 19:39
      델파이의 폼과 같은 소스입니다. 그러니까 델파이 실행하시면 Application만들면 되는데.. 단, 소스의 ...
    • 최용일
      2002.10.08 19:55
      안녕하세요. 최용일입니다. File/New해서 프로젝트 하나 만드시고 빈폼은 프로젝트에서 없애버리세요. ...
    • 이원영
    • 2002.10.08 05:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최병철
      2002.10.08 19:27
      서브 쿼리의 Union을 이용해서 보세요 아마 좋은 결과 있을것 입니다. 참고로 아래의 내역 결과로 볼...
    • 초짜
    • 2002.10.08 03:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정경철
      2002.10.08 22:52
      잘은 모르겠습니다. 혹시 이 숫자를 integer형으로 변환 하여 사용 할려고 하는지 모르겠습니다. intege...
    • 신승철
      2002.10.12 01:40
      간단하게 생각하세요. 디테일벤드한개가지고 가능합니다. 두칸이들어갈만한 크기로 height을 좀 크게늘린...
    • 최여옥
    • 2002.10.08 02:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박상윤
      2002.10.09 22:27
      Com port는 정확하게..setting을 하셨나요.. 정확하게 안됬을 경우 포트는 잡혀 있어도 통신이 안...
    • 김수경
      2002.10.08 21:25
      Delphi가 없는 관계로 이론만 설명드리겠습니다. 두서없는 설명이 되겠지만 참조하세요 ^^; fm1 <--...
    • 이추형
      2002.10.08 02:52
      private    procedure AppMessage(var Msg: TMsg; var Handled: Boolean); procedure TFor...
    • 이대성
      2002.10.08 03:15
      죄송 한데요... 제가 여쭈어 본건 Form2에서 입력된 Textbox의 내용을 확인버튼을 Click했을때 Form1의 ...
    • 쳐리
    • 2002.10.08 02:40
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이추형
      2002.10.08 02:44
      쉽게 생각하면 OnCreate에서는 화면의 각각의 콤포를 생성하기 때문에 해당 프로시져를 호출하면 에러가 ...
    • 쳐리
      2002.10.08 03:51
      페인트 박스가 다른 창에 가리거나, 최소화 된 후에 다시 활성화가 되면 지워지는 문제였네요.... 페인트 ...
    • 최용일
      2002.10.08 20:05
      안녕하세요. 최용일입니다. TPaintBox는 TImage와는 달리 그리기 작업한것을 저장하는 기능이 없습니다....
    • blackjewel
    • 2002.10.08 01:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 미소나눔
      2002.10.08 05:33
      procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;   Shift: TShiftState); beg...
    • blackjewel
      2002.10.10 01:51
    • 최용일
      2002.10.08 20:07
      안녕하세요. 최용일입니다. 소켓을 닫을 때 예외처리 하세요... try     인디...
    • 하성일
    • 2002.10.08 00:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김수경
      2002.10.08 22:30
      받는 부분에서 메모리를 할당하시는가 보군요 사용이 끝난 메모리를 해제하는 부분을 확인해 보십시오. ...