궁금한게 한가지 있습니다.
XE5로 안드로이드 앱 작업중인데.. main.pas 와 sub.pas 이렇게 두개의 창이 있는데..
서로 데이터를 주고 받고 싶은데.. 그게 잘 않되더라구요..
main.pas에서 fromSub.show 해서 창이 띄우고 그곳에서 작업을 해서 해당 결과를 main 창으로 가져오려고
전역 변수도 써보고 했는데.. 그 데이터가 않들어 오더라구요..
혹시 방법이 잘못된 것인지요.. 일반 C/S 프로그램만 개발해 봐서리.. 잘 모르겠네요..
알려주세요.. ^^
아이디어를 2가지 드릴게요.
1, SubForm에 이벤트를 통해 내용을 전달할 수 있습니다.
property OnData: TNotifyEvent read FOnData write FOnData;
서브폼에서 결과가 나오면 아래의 이벤트를 발생시키고 메인폼에서 서브폼의 public한 데이터를 참고하면 좋을 것 같네요.(너무 어렵나요?)
궁금한게 한가지 있습니다.
XE5로 안드로이드 앱 작업중인데.. main.pas 와 sub.pas 이렇게 두개의 창이 있는데..
서로 데이터를 주고 받고 싶은데.. 그게 잘 않되더라구요..
main.pas에서 fromSub.show 해서 창이 띄우고 그곳에서 작업을 해서 해당 결과를 main 창으로 가져오려고
전역 변수도 써보고 했는데.. 그 데이터가 않들어 오더라구요..
혹시 방법이 잘못된 것인지요.. 일반 C/S 프로그램만 개발해 봐서리.. 잘 모르겠네요..
알려주세요.. ^^
아이디어를 2가지 드릴게요.
1, SubForm에 이벤트를 통해 내용을 전달할 수 있습니다.
property OnData: TNotifyEvent read FOnData write FOnData;
서브폼에서 결과가 나오면 아래의 이벤트를 발생시키고 메인폼에서 서브폼의 public한 데이터를 참고하면 좋을 것 같네요.(너무 어렵나요?)
2, 모바일에서는 TFrame을 사용하시면 편리합니다.
TSubForm = class(TForm)
...
private
FData: TMemoryStream;
procedure DoData;
public
property OnData: TNotifyEvent read FOnData write FOnData;
property Data: TMemoryStream read FData; // 원하시는 데이터 등등...
end;
implimentation
procedure TSubForm.DoData;
begin
if Assigned(FonData) then
FOnData(Self);
end;
/////
TMainForm = ...
private
procedure SubFormDataEvent(Sender: TObject);
end;
///
SubForm := TSubForm.Create(Self);
SubForm.OnData := SubFormDataEvent;
//
procedure TmainForm.SubFormDataEvent(Sender: TObject);
begin
if SubForm.Data.Size > 0 then
begin
........
end;
end;
위의 답변이 너무어려워 몇자 구현코드를 추가했는데 이해되실지 모르겠네요 ...-_-; 쉽운 설명은 너무 어려워요...
대충 흐름만 보시면 될 것 같습니다.
정말 감사합니다..
함 도전해보구.. 다른 질문 사항 있으면 다시 여쭤 볼께요..
정말 염치가 없지만 감사합니다..
TFrame을 이용한 내용 곧 포스팅 예정이니 해당 내용도 참고하시면 도움이 될것 같습니다.
이달안에 포스팅하겠습니다.^^