Q&A

  • 스트림 송/수신
########## 클라이언트 'ttt1.bmp'를 서버로 보내려고 합니다.



procedure TForm1.Button1Click(Sender: TObject);

var

MyFStream : TFileStream;

begin

NMStrm1.Host := '202.31.137.244';

NMStrm1.Port := 6011;

NMStrm1.FromName := 'num1';

MyFStream := TFileStream.Create('F:ttt1.bmp', fmopenread);

try

NMStrm1.PostIt(MyFStream);

finally

MyFStream.Free;

end;

end;



########## 서버측 코드



procedure TForm1.NMStrmServ1MSG(Sender: TComponent; const sFrom: String;

strm: TStream);

var

MyFStream : TFileStream;

begin

if fileexists('F:tmp.bmp') then deletefile('F:tmp.bmp');

MyFStream := TFileStream.Create('F:tmp.bmp', fmCreate);

try

MyFStream.CopyFrom(strm, strm.size);

finally

MyFStream.Free;

end;

image1.Picture.LoadFromFile('F:tmp.bmp');

end;



procedure TForm1.NMStrmServ1ClientContact(Sender: TObject);

begin

NMStrmServ1.ReportLevel := Status_Basic;

NMStrmServ1.TimeOut := 90000;

end;



클라이언트에서 cannot file open 'ttt1.bmp'에러가 납니다.

버튼 한번은
4  COMMENTS
  • Profile
    강지영 1999.04.30 07:26
    그리드에 자리수 콤마찍기를 가르쳐주신 함수를 사용해서 적용을 했습니다.

    DBgridDrawDataCell event에 함수를 적용하면 되겠거니.. 했는데..

    컴파일은 되지만 아무런 변화가 없습니다..

    제 소스를 한번 검토해주시겠습니까.

    귀찮은 부탁인것은 알지만..뽀루나는 지영이 실력.. 흑...

    어디가 잘못된걸까요.. 부탁드리겠습니다.



    function formatnumber(I : real):String;

    begin

    formatnumber := formatfloat('#,##0',I);

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    if DBGrid1.SelectedIndex = 5 then

    Edit1.Text := formatnumber(StrToFloat(DBGrid1.SelectedField.DisplayText));

    end;



    procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;

    Field: TField; State: TGridDrawState);

    var

    ts : real;

    S : String;

    begin

    if field.name ='salary' then

    begin

    with (Sender as TDBGrid).Canvas do

    begin

    ts := table1.fieldbyname('salary').AsFloat;

    S := formatnumber(ts);

    fillrect(Rect);

    TextOut(Rect.left, Rect.top,S);

    end;

    end;



    end;



    end.

  • Profile
    강지영 1999.04.30 22:09
    강지영 wrote:

    > 그리드에 자리수 콤마찍기를 가르쳐주신 함수를 사용해서 적용을 했습니다.

    > DBgridDrawDataCell event에 함수를 적용하면 되겠거니.. 했는데..

    > 컴파일은 되지만 아무런 변화가 없습니다..

    > 제 소스를 한번 검토해주시겠습니까.

    > 귀찮은 부탁인것은 알지만..뽀루나는 지영이 실력.. 흑...

    > 어디가 잘못된걸까요.. 부탁드리겠습니다.

    >

    > function formatnumber(I : real):String;

    > begin

    > formatnumber := formatfloat('#,##0',I);

    > end;

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > if DBGrid1.SelectedIndex = 5 then

    > Edit1.Text := formatnumber(StrToFloat(DBGrid1.SelectedField.DisplayText));

    > end;

    >

    > procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;

    > Field: TField; State: TGridDrawState);

    > var

    > ts : real;

    > S : String;

    > begin

    > if field.name ='salary' then

    > begin

    > with (Sender as TDBGrid).Canvas do

    > begin

    > ts := table1.fieldbyname('salary').AsFloat;

    > S := formatnumber(ts);

    > fillrect(Rect);

    > TextOut(Rect.left, Rect.top,S);

    > end;

    > end;

    >

    > end;

    >

    > end.



    안녕하세요.. 지영이 입니다..

    음.. 문제를 일단은 해결을 했습니다.

    원인은 아직 잘 모르겠지만

    > if field.name ='salary' then

    에 있었습니다.

    이 부분을 if Field is TFolatField then로 바꾸어 주었거든요..

    그런데 글쎄요 님께서 말씀하신대로 포커스가 가니까 역시 콤마가 없는 상태로 되돌아 오네요..

    도움주신분들께 감사드립니다..

    즐거운 하루 되십시오.

  • Profile
    글쎄요. 1999.04.30 23:29
    제가 자세히 안 보고 답변을 했네요. 필드명으로 걸러내실려면

    DBgridDrawDataCell event에서가 아니라 DBGridDrawColumnCell

    event에서 코딩을 해주셔야 합니다. 보통 여기다 코딩을 하는 지라

    깜박했네요.

    if Column.Field = Table.FieldByName( 'salary' ) then

    begin

    with (Sender as TDBGrid).Canvas do

    begin

    ts := table1.fieldbyname('salary').AsFloat;

    S := formatnumber(ts);

    fillrect(Rect);

    TextOut(Rect.left, Rect.top,S);

    end;

    end;



    그럼...

  • Profile
    글쎄요. 1999.04.30 19:26
    강지영 wrote:

    > 그리드에 자리수 콤마찍기를 가르쳐주신 함수를 사용해서 적용을 했습니다.

    > DBgridDrawDataCell event에 함수를 적용하면 되겠거니.. 했는데..

    > 컴파일은 되지만 아무런 변화가 없습니다..

    > 제 소스를 한번 검토해주시겠습니까.

    > 귀찮은 부탁인것은 알지만..뽀루나는 지영이 실력.. 흑...

    > 어디가 잘못된걸까요.. 부탁드리겠습니다.

    >

    > function formatnumber(I : real):String;

    > begin

    > formatnumber := formatfloat('#,##0',I);

    > end;

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > begin

    > if DBGrid1.SelectedIndex = 5 then

    > Edit1.Text := formatnumber(StrToFloat(DBGrid1.SelectedField.DisplayText));

    > end;

    >

    > procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;

    > Field: TField; State: TGridDrawState);

    > var

    > ts : real;

    > S : String;

    > begin

    > if field.name ='salary' then

    > begin

    > > end;

    >

    > end;

    > with (Sender as TDBGrid).Canvas do

    > begin

    > ts := table1.fieldbyname('salary').AsFloat;

    > S := formatnumber(ts);

    > fillrect(Rect);

    > TextOut(Rect.left, Rect.top,S);

    > end;



    > end.



    ///////

    이부분을 수정하셔요.

    with (Sender as TDBGrid).Canvas do

    > begin

    Font.Color := clBlack;//추가

    > ts := table1.fieldbyname('salary').AsFloat;

    > S := formatnumber(ts);

    > fillrect(Rect);

    > TextOut(Rect.Left+2, Rect.Top+1,S);//수정

    > end;

    하지만 이 코딩의 단점은 그 셀에 포커스가 가면 원래로 되돌아 가요.

    단지 검색용이라면 그 셀에 포커스가 가지 않게하셔요. 그럼



    • sunhee
    • 1999.07.13 20:13
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.07.13 22:12
      Component에서 Import ActiveX를 하셔서 Microsoft Internet Controls를 임포트하시면 Internet Explorer ...
    • sunhee
      1999.07.13 22:26
      저도 그걸 이용해보려 했는데 팝업메뉴 조절이 안되더군요. 제 나름대로의 팝업메뉴를 만들 수 있는 방법...
    • 유민호
    • 1999.04.30 02:38
    • 2 COMMENTS
    • /
    • 0 LIKES
    • saxoji
      1999.05.01 00:41
      2-tier or 3-tier 환경으로의 programing시 자료형 중 variant가 있는 것이 아닌지? 이경우는 olevariant...
    • 신인재
      1999.04.30 20:39
      음냐...글쎄요 이런 문제는 서버쪽을 유심히 살펴 보아야 할꺼 같은데요.. 우선 서버쪽 프로그램을 고친후...
    • 이정욱
      1999.07.13 22:10
      TBitBtn은 색깔을 바꿀 수 없습니다. 색깔을 바꿀수 있는 컴포넌트가 한델(http://www.delphi.co.kr)자...
    • 강신구
    • 1999.04.30 22:35
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.05.01 00:00
      음냐 제가 잘못 이해 했군요.... 일딴 Enabled를 True로 주고 Options의 goEditing은 false 로 주세...
    • 1999.07.13 19:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.07.13 23:43
      쩝....감사를 표하시니...좀 송구스럽네요....^^; 음...님께서 말하신 폼을 스트링으로 콜은 하는 것은 ...
    • 강지영
    • 1999.04.30 07:26
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김은석
      1999.07.13 19:29
      Ms-Access DB를 사용하고 있습니다. Table 이름을 Rename 시키고 싶은데...DbiRenameTable은 사용할 수 없...
    • 강지영
      1999.04.30 22:09
      강지영 wrote: > 그리드에 자리수 콤마찍기를 가르쳐주신 함수를 사용해서 적용을 했습니다. > DBgridDra...
    • 글쎄요.
      1999.04.30 23:29
      제가 자세히 안 보고 답변을 했네요. 필드명으로 걸러내실려면 DBgridDrawDataCell event에서가 아니라 DB...
    • 글쎄요.
      1999.04.30 19:26
      강지영 wrote: > 그리드에 자리수 콤마찍기를 가르쳐주신 함수를 사용해서 적용을 했습니다. > DBgridDra...
    • 박수연
    • 1999.07.13 19:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.07.14 13:46
      쩝... 한번 해봤는데 역시 안잡히던군요.. 후후.. 하도 신기해서(?) 될때까지 해봤습니다. 코딩은 안해주...
    • 배재민
    • 1999.04.30 20:55
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이일수
      1999.07.13 19:04
      오늘도 무척이나 덥게 느껴지는군요!!!~ 헥헥~~~ AVI file을 편집하고 싶습니다. 어떤 내용이냐면 AVI...
    • 신인재
      1999.04.30 21:37
      음냐.... 일딴 LAN환경이라면 하드웨어적인 환경은 충족이 된상태이고 마이다스를 이용하신다면 소...
    • 배재민
      1999.04.30 22:00
      Delphi4를 이용하는데 BDE dirIDPROV32.DLL이 존재하지 않습니다. 위의 파일은 어떻게 해야 얻을 수 ...
    • 신인재
      1999.04.30 23:13
      분명히 BDE dirIDPROV32.DLL 은 있어야 합니다. 델파이 CD로 BDE부분만 다시 깔아 보세요... 하이텔 Vtoo...
    • 강신구
    • 1999.04.30 22:35
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김정원
      1999.07.13 18:00
      Dbgrid에서 MultiSelect를 해서 이 그 해당 레코드의 한 필드값을 파라메타로 이용하요 프로그램을 Call 하...
    • 신인재
      1999.05.01 00:00
      음냐 제가 잘못 이해 했군요.... 일딴 Enabled를 True로 주고 Options의 goEditing은 false 로 주세...
    • 궁금이
      1999.07.13 18:05
      김정원 께서 말씀하시기를... > Dbgrid에서 MultiSelect를 해서 이 그 해당 레코드의 한 필드값을 파라메...
    • 김종환
    • 1999.07.13 16:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 노력하는이
      1999.07.13 19:30
      김종환 께서 말씀하시기를... > 책을 보다가, 팁을 보다가, 공개 소스를 보다가 nil 이라는 신택스가 나오...
    • 김종환
    • 1999.07.13 12:03
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 강지영
      1999.04.30 07:26
      그리드에 자리수 콤마찍기를 가르쳐주신 함수를 사용해서 적용을 했습니다. DBgridDrawDataCell event에 ...
    • 강지영
      1999.04.30 22:09
      강지영 wrote: > 그리드에 자리수 콤마찍기를 가르쳐주신 함수를 사용해서 적용을 했습니다. > DBgridDra...
    • 글쎄요.
      1999.04.30 23:29
      제가 자세히 안 보고 답변을 했네요. 필드명으로 걸러내실려면 DBgridDrawDataCell event에서가 아니라 DB...
    • 글쎄요.
      1999.04.30 19:26
      강지영 wrote: > 그리드에 자리수 콤마찍기를 가르쳐주신 함수를 사용해서 적용을 했습니다. > DBgridDra...
    • 문창완
    • 1999.07.13 08:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 델초보
      1999.07.13 19:03
      문창완 께서 말씀하시기를... > MDB를 사용해서 네트웍상에서 트랜잭션처리를 하고싶은데 가능할까요... ...
    • 배재민
    • 1999.04.30 20:55
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.30 21:37
      음냐.... 일딴 LAN환경이라면 하드웨어적인 환경은 충족이 된상태이고 마이다스를 이용하신다면 소...
    • 배재민
      1999.04.30 22:00
      Delphi4를 이용하는데 BDE dirIDPROV32.DLL이 존재하지 않습니다. 위의 파일은 어떻게 해야 얻을 수 ...
    • 신인재
      1999.04.30 23:13
      분명히 BDE dirIDPROV32.DLL 은 있어야 합니다. 델파이 CD로 BDE부분만 다시 깔아 보세요... 하이텔 Vtoo...
    • 이광연
    • 1999.07.13 07:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 손창근
      1999.07.13 19:00
      안녕하세요.. 오공이 입니다.. 이광연님의 Sql문을 보니 and 부분이 잘못되어 있는거 같네요.. 제 생각으...
    • 김도진
    • 1999.07.13 05:32
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 배재민
      1999.04.30 20:55
      3계층 데이터베이스 응용프로그램을 작성하였습니다. 응용프로그램 서버와 클라이언트를 작성하고 나서 ...
    • 구창민
      1999.07.13 08:53
      김도진 께서 말씀하시기를... > 안녕하세요 정말종은 사이트 같습니다. > NT4.0을 쓰구요 LAN으로컴퓨터3...
    • 신인재
      1999.04.30 21:37
      음냐.... 일딴 LAN환경이라면 하드웨어적인 환경은 충족이 된상태이고 마이다스를 이용하신다면 소...
    • 배재민
      1999.04.30 22:00
      Delphi4를 이용하는데 BDE dirIDPROV32.DLL이 존재하지 않습니다. 위의 파일은 어떻게 해야 얻을 수 ...
    • 신인재
      1999.04.30 23:13
      분명히 BDE dirIDPROV32.DLL 은 있어야 합니다. 델파이 CD로 BDE부분만 다시 깔아 보세요... 하이텔 Vtoo...
    • 박성훈
    • 1999.07.13 05:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조복기
      1999.07.13 18:42
      안녕하세요..조복기입니다.. 당연히 마스터 디테일로 나누어서 관리하시는게 편하실겁니다. 관리하기...
    • 배재민
    • 1999.04.30 20:55
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.04.30 21:37
      음냐.... 일딴 LAN환경이라면 하드웨어적인 환경은 충족이 된상태이고 마이다스를 이용하신다면 소...
    • 배재민
      1999.04.30 22:00
      Delphi4를 이용하는데 BDE dirIDPROV32.DLL이 존재하지 않습니다. 위의 파일은 어떻게 해야 얻을 수 ...
    • 신인재
      1999.04.30 23:13
      분명히 BDE dirIDPROV32.DLL 은 있어야 합니다. 델파이 CD로 BDE부분만 다시 깔아 보세요... 하이텔 Vtoo...
    • 장철진
    • 1999.07.13 05:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 구창민
      1999.07.13 08:57
      장철진 께서 말씀하시기를... > 안녕하세요 ... > 이미지그림의 바탕에서 그위에 리스트박스를 올렸습니...
    • 안류진
    • 1999.07.13 04:59
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 유민호
      1999.04.30 02:38
      소켓을 이용하는 프로그램을 만들고 있습니다. 서버프로그램에 있는 한개의 TStoredProcedure를 공통적...
    • 김영대
      1999.07.14 04:41
      안류진 께서 말씀하시기를... > 현재 sysbase를 사용하고 있습니다. > 이미지 field에 파일을 등록하고 ...
    • saxoji
      1999.05.01 00:41
      2-tier or 3-tier 환경으로의 programing시 자료형 중 variant가 있는 것이 아닌지? 이경우는 olevariant...
    • 신인재
      1999.04.30 20:39
      음냐...글쎄요 이런 문제는 서버쪽을 유심히 살펴 보아야 할꺼 같은데요.. 우선 서버쪽 프로그램을 고친후...