Q&A

  • unit간에 변수 전달방식에 관하여 질문합니다.
폼1의 memo 값을 폼2의 memo에 넣어주려고 합니다.

특별히 폼 memo들의 값들을 배열로 만들어 폼2의 memo에 넘기려고 합니다.

이해가 잘안가시죠!!

어제 제가 질문한 동적 배열의 타입문제 내용의 원래 의도는 이것입니다.



예를 들어





unit1 {form1} 에서



a : array of Tstrings;

를 선언하고

setlength(a, 10)

어떤 버튼을 누룰때 마다



a[0] := memo1.lines;

...

을 코딩합니다.



그리고 또 다른 버튼을 눌렀을때 폼 2가 생성되면서 폼1의 memo1의 내용들이 들어 있는

배열을 폼2의 배열에다 전달합니다.



form2.create(self)

form2.b := a; ==> 에러 발생지역

...

form2.free;

라고 코딩합니다.



그리고

unit2 {form2} 에서

...

public

b : array of Tstrings; 라고 정의하고



폼 생성 이벤트에서

...

memo1.lines := b[0];

..



라고 코딩한다면 에러 발생 지역에서 type 이 맞지 않는다는 에러가 납니다.

이것의 해결방안은 무엇인지 알고 십습니다. 감사합니다.















2  COMMENTS
  • Profile
    타락천사 2000.07.08 21:15
    안녕하세여..타락임다...^^



    이건 당근 에러져..



    윤미영 wrote:

    > 폼1의 memo 값을 폼2의 memo에 넣어주려고 합니다.

    > 특별히 폼 memo들의 값들을 배열로 만들어 폼2의 memo에 넘기려고 합니다.

    > 이해가 잘안가시죠!!

    > 어제 제가 질문한 동적 배열의 타입문제 내용의 원래 의도는 이것입니다.

    >

    > 예를 들어

    >

    >

    > unit1 {form1} 에서

    >

    > a : array of Tstrings;

    MyList : TStringList;

    // 초기화 함수에서 Create 시킨다..

    // MyList := TStringList.Create;



    > 를 선언하고

    > setlength(a, 10)

    > 어떤 버튼을 누룰때 마다

    >

    > a[0] := memo1.lines;

    > ...

    > 을 코딩합니다.



    꼭 한줄씩 옮겨야 하나여? 통채로 옮기면 돼져...



    MyList.Assign(Memo1.Lines);



    >

    > 그리고 또 다른 버튼을 눌렀을때 폼 2가 생성되면서 폼1의 memo1의 내용들이 들어 있는

    > 배열을 폼2의 배열에다 전달합니다.

    >

    > form2.create(self)

    > form2.b := a; ==> 에러 발생지역

    > ...

    > form2.free;

    > 라고 코딩합니다.

    >



    흠.. 다른폼이나 다른 유닛으로 전달하는건....ㅠㅠ

    첨 말하는건데,,,, 아래와 가치 해보세여..100% 됨다..



    Form2 := TForm2.Create(Application);

    // 여기서 메모내용을 넘김다..

    Form2.m_MyList := MyList;

    try

    Form2.ShowModal;

    finally

    Form2.Free;

    Form2 := nil;

    end;





    unit2 {form2} 에서

    ...

    public

    m_MyList: TStringList ; 라고 정의하고



    // 폼 생성 이벤트에서 Creat 하지 않습니다.. 중요..--



    글구 Form2에서 일반 Create 된 스트링리스트 쓰듯 m_MyList를 쓰면 됩니다..



    >

    > 라고 코딩한다면 에러 발생 지역에서 type 이 맞지 않는다는 에러가 납니다.

    > 이것의 해결방안은 무엇인지 알고 십습니다. 감사합니다.

    >



    이케 하면 잘 될거예여...ㅠㅠ



    휴우~ 전 다시 머리 빡빡 짜서 프로그램 짜야져..ㅠㅠ 헉~ 두유 나온다...



    타락천사..^^



    피에스: 멜 보내지 마세여... 바뻐서 답멜 못함다..ㅠㅠ



  • Profile
    무명 2000.07.08 21:11
    윤미영 wrote:

    > 폼1의 memo 값을 폼2의 memo에 넣어주려고 합니다.

    > 특별히 폼 memo들의 값들을 배열로 만들어 폼2의 memo에 넘기려고 합니다.

    > 이해가 잘안가시죠!!

    > 어제 제가 질문한 동적 배열의 타입문제 내용의 원래 의도는 이것입니다.

    >

    > 예를 들어

    >

    >

    > unit1 {form1} 에서

    >

    > a : array of Tstrings;

    > 를 선언하고

    > setlength(a, 10)

    > 어떤 버튼을 누룰때 마다

    >

    > a[0] := memo1.lines;

    > ...

    > 을 코딩합니다.

    >

    > 그리고 또 다른 버튼을 눌렀을때 폼 2가 생성되면서 폼1의 memo1의 내용들이 들어 있는

    > 배열을 폼2의 배열에다 전달합니다.

    >

    > form2.create(self)

    > form2.b := a; ==> 에러 발생지역

    > ...

    > form2.free;

    > 라고 코딩합니다.

    >

    > 그리고

    > unit2 {form2} 에서

    > ...

    > public

    > b : array of Tstrings; 라고 정의하고

    >

    > 폼 생성 이벤트에서

    > ...

    > memo1.lines := b[0];

    > ..

    >

    > 라고 코딩한다면 에러 발생 지역에서 type 이 맞지 않는다는 에러가 납니다.

    > 이것의 해결방안은 무엇인지 알고 십습니다. 감사합니다.

    >



    다른 특별한 이유가 없다면 이렇게도 할수 있습니다.



    form2.memo1.lines := form1.memo1.lines;



    만약 위와같이 변수를 경유해야 한다면....



    var a:TStrings; // a와 b를 TStrings로 선언합니다.



    이때 a를 꼭 create해야 합니다. 폼생성시 create하고 폼 해제시 free하면 되겠지요.



    그런다음....



    form2.b.assign(a); // 이런식으로 하시면 전체가 copy됩니다.





    만약 배열로 여러개를 변수에 담아야한다면....



    interface절에 type을 선언하시고 유닛을 연결하세요



    type TStringAarray= array of TStrings;



    이때 주의할점은 배열 각 요소의 create입니다.

    • river
    • 2000.07.08 20:36
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 윤미영
    • 2000.07.08 20:31
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2000.07.08 21:15
      안녕하세여..타락임다...^^ 이건 당근 에러져.. 윤미영 wrote: > 폼1의 memo 값을 폼2의 memo에 넣...
    • 무명
      2000.07.08 21:11
      윤미영 wrote: > 폼1의 memo 값을 폼2의 memo에 넣어주려고 합니다. > 특별히 폼 memo들의 값들을 배열로...
    • 타락천사
      2000.07.08 21:00
      안녕하세여..타락임다..ㅠㅠ 오늘은 휴일인데 회사에 나왔음다...ㅠㅠ 올 저녁도 저녁 11시까지 풀로...
    • 최용일
      2000.07.08 23:55
      안녕하세요. 최용일입니다. 아래와 같이 해보세요. 리스트박스에 파일리스트를 넣는 예제입니다. var...
    • 최용일
      2000.07.09 00:07
      이런 질문이 젤 싫어요. 누군 할일이 없나... 멜로 보내달라니... 질문을 했으면 직접 찾아와서 봐야지 ...
    • 초보 델코
      2000.07.10 20:21
      T.T 흑..너무하시네요... 저는 질문을 그리 하지않는 편이고 질문을 해도 답편을 한번도 보지 못했습니다....
    • 최용일
      2000.07.11 01:08
      안녕하세요. 최용일입니다. 그건 이미 그 패키지가 인스톨되어 있기 때문입니다. 그럴땐 그냥 컴파일만 ...
    • 최용일
      2000.07.08 23:09
      안녕하세요. 최용일입니다. 푸하하하~ 죄송합니다. 먼저 웃어서... 초보분이신것같은데 그럴수도 있죠.....
    • kiwi
      2000.07.09 00:00
      죄송합니다.. 제설명이 좀 부족했네여 쿠쿠 -초보인건 맞아여^^* type Struc_Search = Record ...
    • 최용일
      2000.07.09 01:51
      안녕하세요. 최용일입니다. 질문을 보니 C에서
    • 최용일
      2000.07.09 00:30
      안녕하세요. 최용일입니다. 그냥 Copy함수를 쓰셔도 되겠네요... ls_str := '0쿠쿠쿠 쿠쿠 ...
    • kiwi
      2000.07.10 18:09
      감사합니다.. 행복하세요... ^_^
    • 한대필
    • 2000.07.08 19:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.07.08 23:16
      안녕하세요. 최용일입니다. 질문이 좀 명확하지가 않은것 같네요... 리소스DLL을 어떻게 만드는가를 질...
    • 전대협
      2000.07.08 19:46
      문홍철 wrote: > > 무식하게 윈도우를 밀어버렸거든요. > > 그러니까 asf는 되는데 asx화일은 안되네요 ...
    • 문홍철
      2000.07.08 20:18
      헐 ~.*! 혹시 플러그인 문제가 아닌가 싶네요..! 플러그인은 저도 잼뱅인데.. 제가 야그한 방법은 적...
    • 전대협
      2000.07.08 20:54
      문홍철 wrote: > 헐 ~.*! > 혹시 플러그인 문제가 아닌가 싶네요..! > 플러그인은 저도 잼뱅인데.. > ...
    • 최용일
      2000.07.08 23:38
      안녕하세요. 최용일입니다. 이해가 안되시겠지만 말씀하신대로 정상적으로 작동을 했네요... 예전에도 ...
    • 델초보녀
      2000.07.09 00:14
      답변 고마워요... 그건 해결 했는데요... 또 한가지 문제가 생겨서... 로그인 화면에서 '닫기'버튼...
    • 최용일
      2000.07.09 00:38
      안녕하세요. 최용일입니다. TFmLogin을 모들폼으로 쓰니까 그냥 닫기버튼의 ModalResult속성에 mrCancel...
    • 2000.07.08 19:10
      델초보녀 wrote: > > > FmLogin := TFmLogin.Create(Application); > FmLogin.ShowModal; // ---...
    • 델초보녀
      2000.07.08 19:57
      훈 wrote: > 델초보녀 wrote: > > > > > > FmLogin := TFmLogin.Create(Application); > > FmLo...
    • 밥벌레
      2000.07.14 16:28
      음 웬만하면 DPR파일은 건드리지 마시고 로그인 같은건 메인폼에 OnShow 이벤트에 넣으시죠.. procedure...
    • 성호종
      2000.07.10 23:23
      castle road wrote: 정확한건 봐야 알겠지만.... index가 읽기전용이라는 말은 정상적인 DB schema에서는...
    • DOL
    • 2000.07.08 11:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Black}{ole
      2000.07.08 15:23
      DOL wrote: > 프로젝트 파일을 컴파일하면 실행파일이 생기잖어요? > > 그 파일을 윈도우 탐색기에서 ...
    • DOL
    • 2000.07.08 09:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Black}{ole
      2000.07.08 15:23
      DOL wrote: > ReadDateTime을 Help에서 보면 > 다음과 같이 나오는데요.. > > Retrieves a date-time...
    • 이승리
    • 2000.07.08 08:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Black}{ole
      2000.07.08 15:23
      이승리 wrote: > 안녕하세요.. > > 무조건 바탕화면을 캡쳐해서, 자기가 원하는 부분만을 > > 폼 ...
    • 아세만
      2000.07.08 10:16
      홍기원 wrote: > > 클라이언트가 서버에 소켓으로 접속을 할때 버전을 체크하든가 하여서(아니면 다른것...
    • parkisu
      2000.07.09 08:22
      tommy wrote: > ------------------------------------------ > | | | ...
    • parkisu
      2000.07.08 11:03
      tommy wrote: > ------------------------------------------ > | | | ...
    • tommy
      2000.07.08 17:59
      parkisu wrote: tommy wrote: > ------------------------------------------ > | ...
    • 김영해
      2000.07.08 18:12
      tommy wrote: > parkisu wrote: > tommy wrote: > > ------------------------------------------ > ...
    • 무명
      2000.07.08 05:42
      폼에 버튼하나 리스트박스하나 올리시고 다음처럼 테스트해보세요. uses printers; procedure TFor...