Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[14089] Re:Re:빌더님 감사합니다.
하두고 [hadugo] 1826 읽음    2012-02-06 12:15
감사합니다.
빌더님....

빌더 님이 쓰신 글 :
: 전에 올린 코드엔 논리적 오류가 있어서 다시 올립니다.
:
:
:
: typedef struct
: {
: 	HWND hWnd;
: 	int	 Left;
: 	int  Top;
: } MAPDATA, *LPMAPDATA;
: 
: 
: class TGlobalMap : public TObject
: {
: public:
: 	virtual __fastcall TGlobalMap();
: 	virtual __fastcall ~TGlobalMap();
: 
: 	void __fastcall AcquireGlobalMap(TForm *MainForm);
: 
: private:
: 	static const TCHAR* const _ID;
: 	HANDLE _hMap;
: 	LPMAPDATA  _pMapData;
: 	TForm	*_MainForm;
: 
: 	void __fastcall CreateGlobalMap();
: };
: 
: const TCHAR* const TGlobalMap::_ID = L"Global/Application/MyMap";
: 
: __fastcall TGlobalMap::TGlobalMap()
: {
: 	_hMap = NULL;
: 	_pMapData = NULL;
: 	_MainForm = NULL;
: }
: 
: __fastcall TGlobalMap::~TGlobalMap()
: {
: 	UnmapViewOfFile( _pMapData );
: 	CloseHandle(_hMap);
: }
: 
: void __fastcall TGlobalMap::AcquireGlobalMap(TForm *MainForm)
: {
: 	_MainForm = MainForm;
: 	HANDLE hMap = OpenFileMappingW(FILE_MAP_ALL_ACCESS, false, _ID);
: 	LPMAPDATA pMap;
: 
: 	if( hMap )
: 	{
: 		pMap = (LPMAPDATA)MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(MAPDATA));
: 		CloseHandle(hMap);
: 		if( !pMap ) {
: 			throw Exception("Fail - MapViewOfFile()");
: 		}
: 
: 		PostMessage(pMap->hWnd, WM_QUIT, 0, 0);
: 
: 		_MainForm->Left = pMap->Left;
: 		_MainForm->Top = pMap->Top;
: 
: 		UnmapViewOfFile(pMap);
: 		CreateGlobalMap();
: 		return;
: 	}
: 
: 	CreateGlobalMap();
: }
: 
: void __fastcall TGlobalMap::CreateGlobalMap()
: {
: 	_hMap = CreateFileMappingW(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(MAPDATA), _ID);
: 
: 	if( !_hMap ) {
: 		throw Exception(L"Fail - CreateFileMapping()");
: 	}
: 	_pMapData = (LPMAPDATA)MapViewOfFile(_hMap, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(MAPDATA) );
: 
: 	if( !_pMapData ) {
: 		throw Exception(L"Fail - MapViewOfFile()");;
: 	}
: 
: 	_pMapData->hWnd = _MainForm->Handle;
: 	_pMapData->Left = _MainForm->Left;
: 	_pMapData->Top = _MainForm->Top;
: }
: 
: WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
: {
: 	TGlobalMap *Map;
: 	try
: 	{
: 		try
: 		{
: 			Map = new TGlobalMap();
: 			Application->Initialize();
: 			Application->MainFormOnTaskBar = true;
: 			Application->CreateForm(__classid(TForm1), &Form1);
: 
: 			Map->AcquireGlobalMap(Application->MainForm);
: 
: 			Application->Run();
: 		}
: 		catch (Exception &exception)
: 		{
: 			Application->ShowException(&exception);
: 		}
: 		catch (...)
: 		{
: 			try
: 			{
: 				throw Exception("");
: 			}
: 			catch (Exception &exception)
: 			{
: 				Application->ShowException(&exception);
: 			}
: 		}
: 	}
: 	__finally
: 	{
: 		delete Map;
: 	}
: 	return 0;
: }
: 
: 

+ -

관련 글 리스트
14083 중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요? 하두고 2111 2012/02/02
14088     Re:중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요? 빌더 2331 2012/02/04
14089         Re:Re:빌더님 감사합니다. 하두고 1826 2012/02/06
14084     Re:중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요? 빌더 1862 2012/02/03
14085         Re:Re:중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요? 하두고 1828 2012/02/03
14087             Re:Re:Re:중복실행 방지가 아니고 중복실행되면 강제 재실행 하는 방법은 없을까요? 대박왕 2111 2012/02/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.