|
폼에 있는 뉴그룹버튼을 클릭하면
void __fastcall TForm1::NewGroupClick(TObject *Sender)
{
TTreeNode *TempNode;
TTreeView *RadioView;
...............
//새로운 노드를 만들고 ( ccc )
TempNode = RadioView->Items->AddChild(RadioView->Selected, "");
GroupNodeJustAdded(TempNode);
.......................
}
aaa
|
+bbb
|
+ccc
void TForm1::GroupNodeJustAdded(TTreeNode *NewNode)
{
if (NewNode->Parent) {
NewNode->Parent->Expand(false);
}
NewNode->ImageIndex = 0;
NewNode->SelectedIndex = 1;
NewNode->StateIndex = -1;
NewNode->EditText(); //그 노드(ccc)를 에디트모드로 만들게 했습니다.
}
// 검사는 이곳에서 하려 합니다
void __fastcall TForm1::RadioViewEdited(TObject *Sender, TTreeNode *Node,
AnsiString &S)
{
if ( S.IsEmpty() ) // ccc가 비었을때
{
MessageDlg("Please Type Group Name", mtError,TMsgDlgButtons() << mbOK, 0);
Node->EditText();// 안되네요...
//Node->Delete();아예 지워버릴려고 해도 access violation 나네요
}
}
제가 하고 싶은것은 아무것도 입력되지 않으면 새로운 노드가 안생기게 하려고 합니다..
아무것도 입력되지 않았을때 트리뷰를 빠져나간다거나 뉴그룹버튼을 누르면..
아무것도 입력되지 않은 노드에 포커스를 주었음 합니다 에디트상태로...
그런데 OnEdited()는 수정이 되었을때만 호출되어지는군요....
그럼 수정안한 상태로 다른 동작을 하면....호출이 안되는건데..
이러면 안되거든요.....1. 무조건 수정이 되게 하려면....
어떻게 해야 할까요?...
2. 검색해보니 OnEdited()에서는 EditText()가 안된다고 하네요,,
그럼 어떻게 하지요?
부탁합니다...고수님들
|