자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 32313
공지 유용한 관련 사이트 관리자2 2014.03.20 71877
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 116591
955 cmake 테스트가 안됩니다. [1] 쿠리 2018.08.10 1213
954 델파이 설치 시 제품 키 유효기간을 알고싶습니다. [1] 얼짱나 2018.08.13 267
953 블루투스 스캐너 소스로 테스트중입니다. 첨부파일처럼 에러가 납니다. 도와주세요. [1] file 김종찬 2018.08.13 271
952 Raize component 전수정 2018.08.14 254
951 10.2.3 질문입니다. [1] 희망나라 2018.08.14 304
950 [질문] C++ Builder에서 디버깅 할때, RTL 소스로 들어가지 않는 방법? 베도빈 2018.08.16 351
» FMX THorzScrollBox 이미지 출력 관련 문의드립니다. 생각 2018.08.20 276
948 넥서스7 이 타겟 디바이스로 잡히지 않습니다. [1] 발란드레 2018.08.20 287
947 FMX로 안드로이드 개발 초보입니다. 백그라운드 기능을 개발하고싶습니다. delphiChobo 2018.08.20 349
946 RAD Studio 10.2에 버그가 있는 것 같습니다. [1] 쿠리 2018.08.22 352
945 안드로이드 어플 개발중 블루투스 페어링 액티비티 제어 file Operationbt 2018.08.23 692
944 delphi 10.2 오류 [1] file midas 2018.08.24 259
943 REST.JSON 적용문의 [1] cleo0917 2018.08.27 289
942 안드로이드 빌드시 Error: Could not create the Java Virtual Machine. 해결방법 문의드립니다 [3] delphi 2018.08.28 5488
941 폼을 생성할때 ItemIndex를 설정하면 combobox1change 이벤트발생. 오류인듯 -_- [2] 미스터리 2018.08.29 429
940 c빌더 컴파일후 도스창을 유지하는 방법을 알고 싶습니다 [1] 이수욱 2018.08.30 269
939 델파이 안드로이드 API 26에 관한 질문입니다. [3] 시리온느 2018.08.30 374
938 안드로이드 모바일 해상도 100jk 2018.08.30 360
937 CTI 연동할때 모니터 하단에서 알림창 같이 떠오르게 하는 방법? 미스터리 2018.08.31 419
936 FMX Path에서 anti aliasing 없애는 방법이 있나요? [2] 100jk 2018.09.01 278