Q&A

  • 동적배열객체의 생성시간단축문제입니다.
이미지를 동적으로 생성하다 보니 시간이 많이 소비됩니다.

선언: ti: array of timage
실행:
(1 cycle) setlength(ti,1);
         ti[0]:=timage.create(self);
         ti[0].parent:=prt1; ...
:
:

(n cycle) setlength(ti,n);
         ti[n-1]:=timage.create(self);
         ti[n-1].parent:=prt1;...

동적 이미지가 수십개에서 일만개까지 동적으로 실행(생성)합니다.
그렇다고, 선언구문(create)을 따로 빼놓을수도 없고, 저도 거의 독학하다시피해서 안 것이라, 확신이 없어서 이런 문법으로 사용합니다만, 혹시 동적 배열객체의 단일생성방법은 없는지요.
3  COMMENTS
  • Profile
    강인규 2005.03.09 23:41

    코드를 정리해서 올려주셔서 어떤식으로 쓰시는지는 잘 모르겠습니다만은

    요런 경우 시간이 걸리는 부분은 "timage.create(self)"보다는 "setlength(ti,n)"일 확률이 높습니다.

    최대 구성가능한 배열의 사이즈가 정해져 있다면 메모리가 허락하는 한에 최대 사이즈로 셋팅한 후
    이미지를 생성하는 것이 성능을 올리는 방법이라 생각됩니다.


  • Profile
    손희석 2005.03.09 22:04
    배열보다는 TList형을 이용하는 것이 나을지도요..

    메모리 누수가 걱정되시면 TObjectList를 이용하시면 더 나을지도요..

    일반적으로 배열을 이용하는 것보다 효율적이지 않을까 하는 생각이 듭니다.

    객체 생성은 어쩔수 없는 부분이기 때문에요.. 단일적으로 생성하는 것은 어렵습니다.

    클래스를 인스턴스화 하는 과정은 델파이언어에서는 필수적이기 때문입니다..

    그럼 즐거운 코딩 되시길 바랍니다.. ^^
  • Profile
    난 백만당적이다. 2005.03.09 19:54



    for문을 이용해서 n만큼 반복해서 하면 되지 않나요?

    <!--CodeS-->
    for i := 0 to n do begin
       ti[i] := TImage.Create;
       With ti[i] do begin
          parent := prt1;
          .....
       end;
    end;
    <!--CodeE-->
    • 라벤더
      2005.03.10 00:30
      FileRead(FH, PChar(nfile), len); 이런식으로 쓰면 되지 않나요.. 무엇이 문제이신지;;
    • 세일러문
      2005.03.10 00:42
    • 오석영
    • 2005.03.09 10:15
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 강인규
      2005.03.09 23:41
      코드를 정리해서 올려주셔서 어떤식으로 쓰시는지는 잘 모르겠습니다만은 요런 경우 시간이 걸리는 부...
    • 손희석
      2005.03.09 22:04
      배열보다는 TList형을 이용하는 것이 나을지도요.. 메모리 누수가 걱정되시면 TObjectList를 이용하시면...
    • 난 백만당적이다.
      2005.03.09 19:54
      for문을 이용해서 n만큼 반복해서 하면 되지 않나요? <!--CodeS--> for i := 0 to n do be...
    • 홍성락
      2005.03.09 05:41
      그냥 쉽게 전역변수써서 마우스다운/업에 코딩 하시면 안되나요, 아래 perform으로 윈도우메세지 써야하나...
    • nilriri™
      2005.03.09 02:05
      .
    • 이창재
    • 2005.03.09 01:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 박지용
      2005.03.09 01:22
      Delete 나 Update를 할 때 즉, 결과 recordset을 받지 않는 경우는 ExecSQL(); 로 쿼리를 실행해야 합니다...
    • 이창재
      2005.03.09 01:25
    • 박준하
    • 2005.03.09 01:15
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.03.08 23:00
      배열은 지역이냐 전역이냐에 따라 생성 소멸되기 땜에 프로그램이 종료 되면 메모리 해제 될테구요.. ...
    • 최성효
    • 2005.03.08 20:48
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 박지용
      2005.03.09 01:25
      BDE를 이용하지 말고, ADODB 컴포넌트를 사용하면 더좋은 결과를 얻을꺼에요^^
    • 최성효
      2005.03.09 03:17
      답변 감사합니다. 그런데 MSSQL 2000 이랑 delphi 7.0 이랑 연결하는 자료는 쉽사리 찾아지지가 않네요~...
    • 박지용
      2005.03.09 23:27
      여기 자료실이나, 강좌에서 ADO관련자료를 찾아보시거나, 델파이 관련 책을 구매하시면 ADO관련내용은 ...
    • 장재영
    • 2005.03.08 17:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 난 백만당적이다.
      2005.03.08 18:11
      년도가 뒤로간 날짜 타입이 존재하잖아요... 12-31-2005   머 이런식으로.... ...
    • 장재영
      2005.03.16 16:55
      config.db 에 command=set DATE ANSI 위 환경 때문에   2005-12-31 이런 형식으로 자동 변...
    • 이영주
    • 2005.03.08 10:52
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 유효근
    • 2005.03.08 07:37
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.03.08 18:24
      레지스트리 항목이 뜻하는 건 알수 없지만.. 추측컨데 익스플로러 종료시에 열어본 페이지 목록을 지우...
    • 권수광
    • 2005.03.08 06:53
    • 3 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2005.03.08 18:28
      세션 정보가 필요한 이유가 뭔지 여쭤봐도 될까요?
    • 권수광
      2005.03.09 06:40
      세션 정보가 필요한 이유는 그 웹에 로그인 한 사용자에 따라 메뉴 사용에 제한을 둘려고 합니다. 그러...
    • nilriri™
      2005.03.09 21:44
      제가 잘못이해하고 있는건가요? 세션이란건 서버측에 가지고 있는 데이터.. 쿠키는 클라이언트측에 ...
    • 이정택
    • 2005.03.08 05:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강재규
      2005.03.08 20:54
      저의 생각으로는 ClientWidth = 100% ClientHeight = 100% 으로 해보세요. win98나 win2000에서 작...
    • 이재근
    • 2005.03.08 00:39
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2005.03.08 19:26
      굳이 송신부 스레드가 존재할 이유가 있나요? 그냥 과감히 없애세요 그리고 수집부에 걍 송신하세요. 만...
    • 이재근
      2005.03.10 00:40
      안녕하세요. 우선 답변 감사드립니다. 제가 이해가 잘 안가서 다시 한번 질문을 드리겠습니다. 데이...
    • 이재근
      2005.03.14 21:13
      안녕하세요. 결국 Thread가 제대로 종료 되지 않아서 생긴 문제 였습니다. Thread Execute 하는 부분에...
    • 로도스
    • 2005.03.08 00:24
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 난 백만당적이다.
      2005.03.09 00:38
      이런 방법도 있습니다. <!--CodeS--> var    i : Integer;    ch...
    • 정정호
      2005.03.08 01:39
      function ReverseWideString(const AText: WideString): Widestring; var   I, Index: Integer...
    • nilriri™
      2005.03.08 00:59
      한글 또는 ByteType 로 검색해서 참고하세요..^^ <!--CodeS--> // 참고만 하세요...ㅡㅡ; ...
    • 성지현
    • 2005.03.08 00:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.03.08 01:00
      안녕하세요. 최용일입니다. 시작메뉴의 델파이아이콘에서 마우스 오른쪽 클릭해서 맨밑에 속성메뉴 클릭...
    • 성지현
      2005.03.08 19:05
      아이고 감솨함당~~
    • 고진중
    • 2005.03.07 21:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 무심코
      2005.03.07 21:50
      OnCloseQuery 이벤트에서 하시고요 CanClose 를 true/false 값을 주시면 됩니다.
    • 오병준
    • 2005.03.07 19:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 도깨비
      2005.03.23 21:31
      socket open 후 바로 처리로직을 넣으시면 안되고, onConnected 이벤트 발생시 실제 connect된 것이므...