자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------

안녕하세요. 모바일로 사내앱을 유지보수중에 있습니다.

THorzScrollBox 에 사내 직원 사진을 전체 불러와서 로컬에 저장 후 뿌려주는데,

기기 성능에 따라 전체직원을 불러올 경우 성능문제(프리징, 팅김)가 많이 발생하고 있습니다.

 

변경해서 생각해 볼것이

전체 이미지를 불러올 때 THorzScrollBox 에서 스크롤 이동시 해당 화면에서만 

이미지를 뿌려주면 성능문제는 없으리라고 보는데,

이미지를 불러오는 1번 배열쪽에서 변경을 해줘야하는지..

2번 THorzScrollBox 옵션쪽에서 변경을 해줘야하는지 감이 오질 않네요.

 

조언좀 부탁드립니다.

 

1. 사번을 기준으로 웹 서버에 존재하는 jpg 파일을 읽어옵니다.

ImageLoadList 프로시저에 해당 배열을 저장합니다.

 

for i:=0 to RecordCount-1 do begin

        v_Emp[i]  := FieldByName('Emp').AsString;

        Next;

end;

 

for i:=Low(v_Emp) to High(v_Emp) do begin

try

Http.Get (WEBSVRURL+v_Emp[i]+'.jpg',MS);

if MS.Size <> 0 then begin

              try

                bmp := TBitmap.CreateFromStream(MS);

                th  := bmp.CreateThumbnail(20,30);

                th.SaveToStream(MS);

                Ms.Position:=0;

                Ms.SaveToFile(v_FileName);

              finally

                th.Free;

                bmp.Free;

              end;

ImageLoadList(v_Emp[i]);

 

2. 해당 프로시저에서는 아래와 THorzScrollBox에 적용합니다.

procedure ImageLoadList(a_No:String);

    begin

      with HorzScrollBox_Image do begin

        h:=Height-Padding.Top-Padding.Bottom;

        w:=Trunc((Height-Padding.Top-Padding.Bottom)*0.80);

      end;

 

      try

        v_Image := TImage.Create(Self);

        with v_Image do begin

          Name          := 'v_Image'+i.ToString;

          Parent        := HorzScrollBox_Image;

          Height        := h;

          Width         := w;

          Position.Y    := HorzScrollBox_Image.Padding.Top;

          Position.X    := HorzScrollBox_Image.Padding.Left+w*i+m*i+1;

          Margins.Right := m;

          Opacity       := 1;

          visible       := true;

          HitTest       := true;

          Tag           := i;

          TagFloat      := i;

          TagString     := a_No;

          OnMouseUp     := onImageMouseUp;

          OnMouseDown   := onImageMouseDown;

          GetEmpImage_Local(a_No,v_Image.Bitmap); <- 핸드폰 로컬에 저장(이후 재 접속시 이미지 불러올 필요없음)

          WrapMode      := TImageWrapMode.Stretch;

        end;

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 15634
공지 유용한 관련 사이트 관리자2 2014.03.20 54464
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 97828
3159 디자인타임시 그림파일이 로딩되지 않습니다. 바다를향해 2018.12.26 96
3158 원격서버(호스팅서버)에 데이터스냅 미들웨어 배포하는 방법 운직 2020.01.31 96
3157 XE2 -> XE10 으로 컴파일만 다시했는데...오류가 납니다. 파란하늘 2016.01.13 96
3156 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 10 - Exercise 2 [1] 관리자 2016.05.10 97
3155 paclientcore240.bpl를 다운받었는데 어떻게 사용하는지? [2] 화이부동 2016.09.03 97
3154 fmx에서 안드로이드 BT 질문 [1] 나즈나 2016.09.26 97
3153 C++Builder Starter 버전 사용 시 에러 질문합니다. file 얼짱나 2017.08.10 97
3152 [마이그레이션 세미나] 파이어 몽키 버전으로 마이그레이션 시 고려해야될 사항들이 궁금합니다. 험프리 2018.03.16 97
3151 ADOQuery의 SQL 에 Select * from Table where 조건 을 만족하는 데이터를 읽어 오는 방법 문의 드립니다. 한태수 2019.12.05 97
3150 [무료 온라인 세미나] 사물인터넷 실제 구현하기 DeepDive! 관리자 2015.09.15 97
3149 TFMTBCDField 필드 type 사용방법에 대해 문의드립니다 [1] delphi 2015.09.17 97
3148 다국어 지원 관련 XE6 update1 오류 발생 문의 [1] file spirng 2015.09.09 98
3147 styleelements [1] timerobb 2016.10.25 98
3146 [RAD서버-201703 세미나] 모바일 화면디자인에 도움이 되는 샘플안내 부탁드립니다. 험프리 2017.03.17 98
3145 몇몇 데모 앱들이 OSX에서 실행시 PAServer 상에 오류가납니다. [1] file devdevil0625 2015.09.23 98
3144 컴포넌트 사용 관련 [1] 똘귀아빠 2015.10.23 98
3143 [마이그레이션 세미나] 데이터스냅에 대한 팁 또는 샘플자료 부탁합니다. 험프리 2015.11.24 98
3142 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 25 - Exercise 1 [2] 관리자 2016.05.27 99
3141 [질문] Ribbon 의 MaxIcon을 Enabled = False 또는 Visible = false를 줄 수 없나요? 바람돌이 2016.05.11 99
3140 [시작하는 사람들을 위한 델파이 프로그래밍] 모듈 12 - Exercise 5 관리자 2020.07.03 99