void __fastcall TForm_MeasureInfo::makeListView()
{
// make list view
for(int i = 0; i < Channel_Max; i++)
{
TListItem *li;
li = lv_Channel->Items->Add();
li->Caption = IntToStr(i + 1);
// Panel Color
pnlColor[i] = new TPanel(lv_Channel);
pnlColor[i]->Parent = lv_Channel;
li->SubItems->AddObject("pnlColor"+IntToStr(i+1), (TObject *)pnlColor[i]);
RECT rect0 = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 1, LVIR_BOUNDS, &rect0);
pnlColor[i]->SetBounds(rect0.left, rect0.top, rect0.right-rect0.left, rect0.bottom-rect0.top);
pnlColor[i]->Visible = true;
// Init I
editInitI[i] = new TEdit(lv_Channel);
editInitI[i]->Parent = lv_Channel;
li->SubItems->AddObject("editInitI"+IntToStr(i+1), (TObject *)editInitI[i]);
RECT rect = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 2, LVIR_BOUNDS, &rect);
editInitI[i]->SetBounds(rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top);
editInitI[i]->Visible = true;
// Output R
editOutputR[i] = new TEdit(lv_Channel);
editOutputR[i]->Parent = lv_Channel;
li->SubItems->AddObject("editOutputR"+IntToStr(i+1), (TObject *)editOutputR[i]);
RECT rect2 = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 3, LVIR_BOUNDS, &rect2);
editOutputR[i]->SetBounds(rect2.left, rect2.top, rect2.right-rect2.left, rect2.bottom-rect2.top);
editOutputR[i]->Visible = true;
//
// OCP
editOCP[i] = new TEdit(lv_Channel);
editOCP[i]->Parent = lv_Channel;
li->SubItems->AddObject("editOCP"+IntToStr(i+1), (TObject *)editOCP[i]);
RECT rect3 = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 4, LVIR_BOUNDS, &rect3);
editOCP[i]->SetBounds(rect3.left, rect3.top, rect3.right-rect3.left, rect3.bottom-rect3.top);
editOCP[i]->Visible = true;
// OVP
editOVP[i] = new TEdit(lv_Channel);
editOVP[i]->Parent = lv_Channel;
li->SubItems->AddObject("editOVP"+IntToStr(i+1), (TObject *)editOVP[i]);
RECT rect4 = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 5, LVIR_BOUNDS, &rect4);
editOVP[i]->SetBounds(rect4.left, rect4.top, rect4.right-rect4.left, rect4.bottom-rect4.top);
editOVP[i]->Visible = true;
// UVP
editUVP[i] = new TEdit(lv_Channel);
editUVP[i]->Parent = lv_Channel;
li->SubItems->AddObject("editUVP"+IntToStr(i+1), (TObject *)editUVP[i]);
RECT rect5 = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 6, LVIR_BOUNDS, &rect5);
editUVP[i]->SetBounds(rect5.left, rect5.top, rect5.right-rect5.left, rect5.bottom-rect5.top);
editUVP[i]->Visible = true;
}
}
// checkbox check event
void __fastcall TForm_MeasureInfo::lv_ChannelMouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
TListItem *item;
THitTests ht;
item = lv_Channel->GetItemAt(X, Y);
ht = lv_Channel->GetHitTestInfoAt(X, Y);
if(item != NULL)
{
if(item->Selected == false)
item->Selected = true;
}
if(ht.Contains(htOnStateIcon))
{
if(lv_Channel->Items->Item[item->Index]->Checked == true)
Label6->Caption = IntToStr(item->Index) + " checked";
else
Label6->Caption = IntToStr(item->Index) + " unchecked";
}
}
{
// make list view
for(int i = 0; i < Channel_Max; i++)
{
TListItem *li;
li = lv_Channel->Items->Add();
li->Caption = IntToStr(i + 1);
// Panel Color
pnlColor[i] = new TPanel(lv_Channel);
pnlColor[i]->Parent = lv_Channel;
li->SubItems->AddObject("pnlColor"+IntToStr(i+1), (TObject *)pnlColor[i]);
RECT rect0 = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 1, LVIR_BOUNDS, &rect0);
pnlColor[i]->SetBounds(rect0.left, rect0.top, rect0.right-rect0.left, rect0.bottom-rect0.top);
pnlColor[i]->Visible = true;
// Init I
editInitI[i] = new TEdit(lv_Channel);
editInitI[i]->Parent = lv_Channel;
li->SubItems->AddObject("editInitI"+IntToStr(i+1), (TObject *)editInitI[i]);
RECT rect = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 2, LVIR_BOUNDS, &rect);
editInitI[i]->SetBounds(rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top);
editInitI[i]->Visible = true;
// Output R
editOutputR[i] = new TEdit(lv_Channel);
editOutputR[i]->Parent = lv_Channel;
li->SubItems->AddObject("editOutputR"+IntToStr(i+1), (TObject *)editOutputR[i]);
RECT rect2 = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 3, LVIR_BOUNDS, &rect2);
editOutputR[i]->SetBounds(rect2.left, rect2.top, rect2.right-rect2.left, rect2.bottom-rect2.top);
editOutputR[i]->Visible = true;
//
// OCP
editOCP[i] = new TEdit(lv_Channel);
editOCP[i]->Parent = lv_Channel;
li->SubItems->AddObject("editOCP"+IntToStr(i+1), (TObject *)editOCP[i]);
RECT rect3 = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 4, LVIR_BOUNDS, &rect3);
editOCP[i]->SetBounds(rect3.left, rect3.top, rect3.right-rect3.left, rect3.bottom-rect3.top);
editOCP[i]->Visible = true;
// OVP
editOVP[i] = new TEdit(lv_Channel);
editOVP[i]->Parent = lv_Channel;
li->SubItems->AddObject("editOVP"+IntToStr(i+1), (TObject *)editOVP[i]);
RECT rect4 = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 5, LVIR_BOUNDS, &rect4);
editOVP[i]->SetBounds(rect4.left, rect4.top, rect4.right-rect4.left, rect4.bottom-rect4.top);
editOVP[i]->Visible = true;
// UVP
editUVP[i] = new TEdit(lv_Channel);
editUVP[i]->Parent = lv_Channel;
li->SubItems->AddObject("editUVP"+IntToStr(i+1), (TObject *)editUVP[i]);
RECT rect5 = {0};
ListView_GetSubItemRect(lv_Channel->Handle, li->Index, 6, LVIR_BOUNDS, &rect5);
editUVP[i]->SetBounds(rect5.left, rect5.top, rect5.right-rect5.left, rect5.bottom-rect5.top);
editUVP[i]->Visible = true;
}
}
// checkbox check event
void __fastcall TForm_MeasureInfo::lv_ChannelMouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
TListItem *item;
THitTests ht;
item = lv_Channel->GetItemAt(X, Y);
ht = lv_Channel->GetHitTestInfoAt(X, Y);
if(item != NULL)
{
if(item->Selected == false)
item->Selected = true;
}
if(ht.Contains(htOnStateIcon))
{
if(lv_Channel->Items->Item[item->Index]->Checked == true)
Label6->Caption = IntToStr(item->Index) + " checked";
else
Label6->Caption = IntToStr(item->Index) + " unchecked";
}
}
댓글