단지 Panel의 Visible 속성을 변경할 때 에러가 생기는 경우에 대해서는 상황 판단이 힘들구요.
일단 TreeView1->Selected가 NULL일 경우가 의심되네요.
다음과 같이 myNode를 검사해 주시면 어떨까요?
void __fastcall TfrmSchedule::TreeView1Click(TObject *Sender)
{
AnsiString FileName;
if(TreeView1->Items->Count <= 0 )return;
Image->Show();
TTreeNode *myNode = TreeView1->Selected;
if(myNode == NULL) return; // 여기 추가
if(myNode->Level == 1)
{
Effect = (TdtEffect*)TreeView1->Selected->Data;
FileName = Effect->Path;
FileName = FileName + Effect->FileName;
Image->Picture->LoadFromFile(FileName);
Panel5->Visible = true;
}else
{
Panel5->Visible = false;
}
}
입문. 님이 쓰신 글 :
: 안녕하세요. 아무리 고민을 해봐도 제 머리에선 답을 찾을수 없어.
: 해답을 얻고자 질문 올려드립니다.
:
: 내용은 이렇습니다.
: TreeView를 이용. OpenDialog를 통해 Image와 Movie를 불러오는 작업을 하고 있는데요.
: Image는 효과가 들어가구요. Movie엔 효과가 들어가지 않습니다.
: Image를 불러들여와서 Click시에 오른쪽 Panel5위에 Speed와 Delayd의 효과가 나타나게 되구요.
: Movie를 불러들여와서 Clickt시엔 오른쪽 Panel5에 Visible이 false로 나타나지 않게 하려구 합니다.
:
:
: 근데 이상태에선 분명 Image를 클릭했을땐 Visible이 true, false 가 가능한데..
: if문을 써서 Movie를 불러들여오는 작업 까진 가능한데..
: 클릭하면 왜 자꾸 아래쪽 " Panel5->Visible = true " 에서 에러가 나는지 모르겠어요.
:
: 어떻게 해야.. Movie를 클릭했을때 에러없이 Panel5가 없어질수있는지.
: 답변 부탁 드려요.. ㅜㅜ;;
:
:
: void __fastcall TfrmSchedule::TreeView1Click(TObject *Sender)
: {
: AnsiString FileName;
:
:
: if(TreeView1->Items->Count <= 0 )return;
:
: Image->Show();
:
: TTreeNode *myNode = TreeView1->Selected;
: if(myNode->Level == 1)
: {
: Effect = (TdtEffect*)TreeView1->Selected->Data;
: FileName = Effect->Path;
: FileName = FileName + Effect->FileName;
: Image->Picture->LoadFromFile(FileName);
: Panel5->Visible = true;
: }else
: {
: Panel5->Visible = false;
: }
: }
: |