Q&A

  • 문제점에 대해서 설명좀 부탁드립니다
아래코드에서 잘못된 부분좀 지적해주세요


SendBuff 시   데이타가 전부 전송이 안되나봅니다.

<!--CodeS-->
var
    SendBuff : PSendBuff;
    TempChar : Pointer;

if ClientSocket.Active then
         begin
            GetMem(TempChar , VSendStream.Size);
            CopyMemory(TempChar , VSendStream.Memory , VSendStream.Size);

            New(SendBuff);
            SendBuff^.sdMsgNum:= MSG_VIDEODISP;
            SendBuff^.sdSize  := VSendStream.Size;
            SendBuff^.sdBuff  := TempChar;

            VRecvStream.Clear;
            WriteLen := VRecvStream.Write(Pointer(SendBuff^.sdBuff)^ ,VSendStream.Size);
            try
              VRecvStream.Position:=0;
              DispJpeg.LoadFromStream(VRecvStream);
              Image1.Picture.Graphic:=DispJpeg;
              Image1.Repaint;
            except
               raise Exception.Create('Jpeg LoadFromStream Error');
               Exit;
            end;

            ClientSocket.Socket.SendBuf(Pointer(SendBuff)^, VSendStream.Size+8);

         end;
<!--CodeE-->
2  COMMENTS
  • Profile
    최용일 2007.12.08 00:07
    PSendBuff가 아마도 레코드형일것 같구요... 그중 sdBuff가 PChar나 Pointer형일것 같네요...

    위 사항이라면 아래 코드는 원하는 기능을 못할겁니다.
    ClientSocket.Socket.SendBuf(Pointer(SendBuff)^, VSendStream.Size+8);

    sdMsgNum, sdSize 필드는 제대로 넘어갈테지만 sdBuff에는 sdBuff의 메모리 주소가 넘어가니까요... 이 다음은 넘치는 크기만큼쓰레기 값이 들어가거나, Access에러가 발생하겠죠...

    PSendBuff의 sdBuff를 배열을 써서 flat하게 메모리구조를 바꾸시거나 각각의 필드들을 나눠서 보내셔야 합니다.

  • Profile
    박종삼 2007.12.08 23:50
    • 유경민
      2008.09.27 09:24
      저랑 같은 사황인듯 ㅠ.ㅠ 저도 지금 죽을맛이에요 아무것도 모른상태에서 개발할려니 ㅋㅋ
    • 한상진
    • 2007.12.12 19:28
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2007.12.12 22:33
      안녕하세요. 윈도우에서 관련 API를 제공합니다. WNet으로 시작되는 API들인데요... WNetAddConne...
    • nilriri™
      2007.12.12 21:09
    • 한상진
      2007.12.13 01:09
      답변 올려주셔서 감사합니다... ㅎㅎ WNetAddConnection2를 써서 해결이 될듯해서 하고 있는데요;; WNetA...
    • ET
    • 2007.12.12 01:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 깨구락지
      2007.12.12 06:56
      ASCII 코드를 참고하십시오. http://www.delphi.co.kr/ascii.html
    • 용이...
    • 2007.12.11 20:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2007.12.11 20:31
      안녕하세요.. 3초짜리 타이머를 하나 만드시고 clientsocke.Active := True; Timer.Enabled := T...
    • 김승재
    • 2007.12.11 03:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2007.12.11 10:24
      인디 9 버전도 멀티 CPU에서 문제 없이 동작 합니다... 아무래도 다른 부분에서 놓치신것 같습니다.. 혹...
    • 이정욱
      2007.12.11 10:17
      아래의 소스를 보니 TCPExecute에서 리스트를 처리 하셨네요. 이 이벤트는 쓰레드 안에 있기 때문에, 쓰레...
    • 주정자
      2007.12.12 10:45
      이정욱님의 답변 감사합니다.  그러나, 제가 실력이 허접인지라 혹 가능하시면 간단한 예제를 들...
    • 혀노
    • 2007.12.10 22:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Crazy™
      2007.12.11 00:04
      group band를 한번 사용해보세요,. 음 그리고 애초에 QRCompositeReport 용도는 다중 레포트가 있는경우 ...
    • 주정자
    • 2007.12.10 06:36
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2007.12.11 10:21
      그냥 Active 만 True로 써주셔도 됩니다. 바인딩에서 뜻하는것은 해당 머쉰의 아이피가 여러개일때 그중...
    • 주정자
      2007.12.12 10:40
      11
    • 정해철
      2007.12.08 01:13
      http://www.delphi.co.kr/zboard/view.php?id=qanda&page=1&sn1=&divpage=13&sn=off&ss=on&sc=on&select_ar...
    • 정경철
      2007.12.08 05:25
      혹시 이것을 말하는지 모르겠습니다. 델파이에 ChartPreview(AForm, AChart) 가 있습니다. 도움말을 참고...
    • 박종철
      2007.12.10 18:12
      먼저 관심갖고 답변해 주셔서 감사합니다. 혹시나 저같은 고민을 하신 분들이 계실까봐 부족하지만 저...
    • 박종삼
    • 2007.12.07 23:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2007.12.08 00:07
      PSendBuff가 아마도 레코드형일것 같구요... 그중 sdBuff가 PChar나 Pointer형일것 같네요... 위 사항이...
    • 박종삼
      2007.12.08 23:50
    • 박종철
    • 2007.12.06 23:45
    • 4 COMMENTS
    • /
    • 0 LIKES
    • Guest
      2007.12.07 01:08
      Chart1.Width := FormTest.Width / 2; <-- 이부분입니다. Chart1.Width 는 정수형인데 FormTest.Wi...
    • 박종철
      2007.12.07 01:32
      감사합니다. 알려주신 방법대로 div로 연산을 하니 일단 컴파일 할 때에는 오류메세지 없이 잘 넘어갑...
    • Crazy™
      2007.12.07 02:05
      div / 2 대신 trunc(FormTest.Width / 2) 로 해보시고 그래도 에러나시면 FormCreate대신 FormActive 이...
    • 박종철
      2007.12.07 17:59
      답변 주신 분들께 감사드립니다. FormActivate, Create, Resize 이벤트 어디에서도 계속 에러가 나서 ...
    • 정경철
    • 2007.12.06 19:42
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2007.12.06 22:51
      안녕하세요.. http://www.delphi.co.kr/zboard/view.php?id=qanda&page=1&sn1=&divpage=13&sn=off&ss=on...
    • 정경철
      2007.12.07 08:38
      위 링크 되어 있는 소스를 테스트 해 보면 모니터2에 표시됩니다. 버튼 같은것으로 폼을 열어 을때는정상...
    • 구창민
      2007.12.07 20:26
      음.. 테스트 해볼 방법이 없어 답변드리기가 곤란한데, 아래 코드에서 모니터2에 보여질 특정폼만 Left ...
    • 정경철
      2007.12.08 05:17
      위 소스대로 했습니다. 그런데 버튼으로 했을때에는 잘 됩니다. 그런데 메인폼이 열리때 하면 메인폼과 ...
    • 모영철
      2008.01.31 01:25
      Font의 캐릭터셋을 ShiftJIS 해주시면 됩니다.
    • Guest
      2007.12.06 02:30
      Group slices 를 사용해보세요. Style : Below % Value : 5 Label : 기타 이렇게 설정하면 전체에...
    • 박종철
      2007.12.06 17:32
      감사합니다~ 델파이 TChart에서는 어쩔수 없는 부분인가 봅니다. ^^;; 알려주신 방법으로 진행하려구요...
    • 코앤
    • 2007.12.05 19:48
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 정경철
    • 2007.12.05 17:22
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      2007.12.05 19:23
      안녕하세요.. Panel을  런타임에 옮기시려면 아래 코드를 Panel 의 마우스다운 이벤트에 기술...
    • 정경철
      2007.12.06 20:00
      감사 합니다..