C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[9290] Re:[질문] listview의 또다른 질문입니다. ^^;
kark .김성진 [] 1068 읽음    2001-07-24 16:40
폼간의 데이타 전달 부분은 간단하지만 조금 민감한 부분이죠.
폼도 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로 값을 넘겨지는것 까지는 됩니다.
:
: 그럼 수고하세요~

+ -

관련 글 리스트
9288 [질문] listview의 또다른 질문입니다. ^^; 김홍섭 908 2001/07/24
9290     Re:[질문] listview의 또다른 질문입니다. ^^; kark .김성진 1068 2001/07/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.