본문 바로가기

코드 조각31

VCL에서 Control의 위치 및 크기 조정하기 VCL에서 Control의 위치 및 크기 조정하기 Parent-Window의 크기에 가변적으로 Child-Control 의 크기및 위치를 조정하고자 하는 경우에... Form의 Resize이벤트 등에 Control의 위치 및 Size를 조정해주곤 한다. Control->Left = Control->Parent->ClientWidth / 2 ; Control->Top = Control->Parent->ClientHeight / 2 ; Control->Width= Control->Parent->ClientWidth / 4 ; Control->Height= Control->Parent->ClientHeight / 4 ; 그런데 위와같이 코딩을 여러개의 Control에 적용하면 문제점이 발생할수 있다. 그 이유.. 2012. 5. 31.
보조 모니터 좌상단 좌표는 보조 모니터 좌상단 좌표는? 보조 모니터의 좌측상단 좌표는 다음과 같이 Display설정에 따라 다르게 나타난다.주 모니터만 Left/Top이 항상 (0,0) 이구, 보조모니터는 주모니터에 상대 위치값이 된다.만약 현재 모니터(주 또는 보조 모니터)의 좌측상단에 어플을 위치하게 하려면 어떻게 하면 될까?VCL에서는 Form클래스 내에서 다음과 같이 하면 된다.this->Left = this->Monitor->Left; this->Top = this->Monitor->Top; 보조 보니터에서 그냥 Top=0 로 설정한경우에위 4가지 설정중 2번 4번의 경우엔 실제로 화면 상단에 위치하지 않게된다. 그럼.. 2012. 5. 3.
Application->MessageBox() 사용하기 유저 의견 확인용 메시지 다이얼로그 String sMsg; sMsg.sprintf(L"%d개의 이슈를 삭제할까요?", DBG_Issue->SelectedRows->Count); if (Application->MessageBox(sMsg.c_str(), L"삭제 확인", MB_YESNO + MB_ICONWARNING) == IDNO) { return ; } 2012. 4. 25.
DBGrid Multiselect 했을때 각각의 Row 처리 void __fastcall TForm1::Button1Click(TObject *Sender) { if (DBGrid1->SelectedRows->Count > 0) { AnsiString s = ""; TDataSet *pDS = DBGrid1->DataSource->DataSet; for (int i=0; i SelectedRows->Count; i++) { pDS->GotoBookmark((void *)DBGrid1->SelectedRows->Items[i].c_str()); for (int j = 0; j FieldCount; j++) { if (j>0) s = s+", "; s = s + pDS->Fields->Fields[j]->AsString; } ListBox1->Items->Add(s).. 2012. 4. 24.
TComboBox Enter 키로 DropDown 제어하기 DroppedDown을 true 해주면 리스트가 열리지만[ENTER]키 때문에 바로 닫혀버린다. [ENTER] 키로 DropDown을 처리해 주려면 아래와 같이 코딩해야 한다. //--------------------------------------------------------------------------- void __fastcall TF_IssueEditDlg::CB_PrjNameKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if( Key != '\r' ) return ; Key = 0; if( CB_PrjName->DroppedDown ) { CB_PrjName->DroppedDown = false; return; } CB_PrjName.. 2012. 4. 24.