|
이용주 님이 쓰신 글 :
: 프로그램을 실행해서 그것의 크기나 위치를 바꾸고 난뒤에 그것에 해당하는 레지스터리를 저장하는 방법이 궁금해서 이렇게 글을 올립니다.
: 오늘 너무 질문 많이 한다구 귀찮게 생각하지 마시고, 자라나는 프로그래머 한명 살린다 생각하고 좀 갈켜주세요~ ^^
: 폼을 닫고 다시 열었을때 최종적으로 위치한 위치값으로 다시 폼이 열리게 하고 싶거든요. 크기든 위치던지..
TRegistryIniFile 클래스를 사용하면 됩니다. 사용법 무지 간단~~
#define REG_KEY "Software\\OurCompany\\MyProgram"
void __fastcall TSDIAppForm::FormCreate(TObject *Sender)
{
TRegistryIniFile *ini = new TRegistryIniFile(REG_KEY);
Top = ini->ReadInteger("MainForm", "Top", 1);
Left = ini->ReadInteger("MainForm", "Left", 1);
Width = ini->ReadInteger("MainForm", "Width", 800);
Height = ini->ReadInteger("MainForm", "Height", 600);
WindowState = ini->ReadBool("MainForm", "InitMax", false) ?
wsMaximized : wsNormal;
delete ini;
}
//---------------------------------------------------------------------------
void __fastcall TSDIAppForm::FormClose(TObject *Sender,
TCloseAction &Action)
{
TRegistryIniFile *ini = new TRegistryIniFile(REG_KEY);
ini->WriteInteger("MainForm", "Top", Top);
ini->WriteInteger("MainForm", "Left", Left);
ini->WriteInteger("MainForm", "Width", Width);
ini->WriteInteger("MainForm", "Height", Height);
ini->WriteBool("MainForm", "InitMax", WindowState == wsMaximized);
delete ini;
}
//---------------------------------------------------------------------------
: 그리고 한가지만더요~ 혹시 윈엠프처럼 하나의 폼에 다른 폼이 자동으로 붙게 되는 방법을 알고 싶습니다.
: 윈엠프의 메임창에 다른 창을 갖다 되면 근처에 갔을 경우, 그냥 딱 붙더군요. 혹시 그런 기능을 구현할수 있는지 궁금하고 가능하다면 방법을 알고 싶습니다 고수님들의 많은 답변 부탁드립니다.
게시판에서 '윈엠프', '윈앰프', '자석(폼)' 등의 검색어로
검색해 보시면 많이 나올겁니다.
|