ActiveX 하나의 폼위에
퀵리포트, TClientSocket, Memo 콤포넌트를 올려 놓았습니다.
자체 정의된 프로토콜에 의해..
서버로 메세지를 보내고 다시..
패킷을 전송받습니다.
전송받은 패킷을 파싱해서..
메모 컴포넌트에 저장합니다.
그리고 showmessage로 메모 컴포넌트에 들어 있는 값을 출력해 보면..
정상적으로 출력되는 걸 확인 할 수 있습니다.
그런데..
퀵리포트의 NeedData 이벤트를 사용해서..
아래와 같이 코딩하면...
procedure TForm1.qrptNeedData(Sender: TObject; var MoreData: Boolean);
var
i, j, k, l:integer;
begin
if count >= Memo1.Lines.Count -1 then begin
MoreData := true;
for i := 0 to Memo1.Lines.count -1 do begin
for j := 0 to 12 do
for k := 0 to 24 do begin
Dat1[j][k].Caption := Memo1.Lines.Strings[i];
end;
end;
end else begin
MoreData := false;
//showmessage(IntToStr(Memo1.Lines.count));
end;
if Not MoreData Then
count := 0;
end;
메모 콤포넌트에 값이 들어가 있지 않음을 확인할 수 있습니다.
제 생각엔 아마도..
TClientSocket 콤포넌트의 Connect 이벤트나 OnRead 이벤트보다..
퀵리포트 콤포넌트의 NeedData 이벤트가 먼저 발생해서 그런 것 같은데..
좋은 해결 방법이 없을런지요??