|
폼간의 데이타 전달 부분은 간단하지만 조금 민감한 부분이죠.
폼도 TForm이라는 클래스에서 나온거라서 결국 클래스니까요.
: Form1->ListView1->Selected->Caption = Edit1->Text;
이렇게 바로 넘기지 마시구요.
왜냐면 컴포넌트들은 __published 에 정의 되어 있자나요.
이 부분들은 엄격히 말해서 public은 아니라는 얘기가 됩니다.
public에서 Form1->ListView1->Selected->Caption 에 값을 넣는 함수를 만드시든지,
아님 public에다가 변수를 하나 만들어서 그기에다 대입하는게 나을거라 봅니다.
예를 들면 이렇게 되겠죠.
먼저 Form1 헤드 파일의 public 부분에
String test;
라구 선언해 두구요..Form1에서는
void __fastcall TForm1::Button1Click(TObject *Sender)
{
test = Edit1->Text;
if(Form2->ShowModal()) //mrOk를 받도록 할 수 있습니다.
Edit1->Text = test;
}
이렇게 하시구, Form2에서는
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Form1->test = Form1->test + Edit1->Text;
// ModalResult = mrOk;
Close();
}
이렇게 하면 됩니다. 간단한 예니까, 조금씩 응용하시면 될거라 생각됩니다.
카크였습니다.
김홍섭 님이 쓰신 글 :
: 수고많으시네요..
:
: 다름이 아니라 listview에서 더블클릭했을때 그 값을 Form2의 Edit Box에 넘겨줘서 수정되어진 글을
:
: 다시 Form1의 listview로 수정된 값을 넘기고 싶은데 잘 안되네요..
:
: 쉬운거 같은데 안되네요.... ^^;
:
:
: 폼 1은 아래와 같습니다.
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: TListItem *NItem;
:
: NItem = ListView1->Items->Add();
: NItem->Caption = AnsiString(Edit1->Text);
: NItem->SubItems->Add(AnsiString(Edit2->Text));
: NItem->SubItems->Add(AnsiString(Edit3->Text));
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::ListView1Data(TObject *Sender, TListItem *Item)
: {
: switch(list)
: {
: case 1 :
: Item->Caption = Edit1->Text;
: Item->SubItems->Add(Edit2->Text);
: Item->SubItems->Add(Edit3->Text);
: Edit4->Text = ListView1->Items->Count;
: break;
: }
: }
: //---------------------------------------------------------------------------
:
:
: void __fastcall TForm1::ListView1DblClick(TObject *Sender)
: {
: TListItem *listitem;
:
: if(!ListView1->Selected)
: {
: Application->MessageBox("열을 정확하게 선택하세요","경고",
: MB_OK+MB_ICONINFORMATION);
: return;
: }
: listitem = ListView1->Items->Item[ListView1->Selected->Index];
: Form2->Edit1->Text = listitem->Caption;
: Form2->ShowModal();
: }
:
:
: 폼2는 아래와 같습니다.
:
: void __fastcall TForm2::BitBtn1Click(TObject *Sender)
: {
: Form1->ListView1->Selected->Caption = Edit1->Text;
: Form2->Close();
: }
:
: 왜 안되는지 잘 모르겠떠여~ 소스 수정 좀 부탁드립니다.
:
: 폼2로 값을 넘겨지는것 까지는 됩니다.
:
: 그럼 수고하세요~
|