Q&A

  • 이미지는 처음이라..조언좀 구할깨요~

기본 사이즈 정의 후 모든곳에서 사용시 가로세로 비율을 마쳐주려고 하는데요~

이미지 속성에서 Stretch를 True로 잡혀 있는 상태이고요~

이미지 사이즈를 정하고 싶은데......

가로는 47로 세로는  67로 일정하게 비율을 주려고 합니다.

그런데...어디서 어떤게 변경을 해야할지;;;

고민이네요;;

아시는분이 계시면 조언좀 들을깨요^^

그냥 Timage properties에서 바꾸는건 아니겟져;;;;

ㅎㅎ
3  COMMENTS
  • Profile
    이정욱 2008.09.26 12:10
    비율을 유지한채 리사이즈를 하시려면 직접 코딩으로 하셔야 합니다..

    가로크기가 더 긴 이미지인지 세로크기가 더 긴 이미지인지 일단 알아내고(가로와 세로 크기 비교로 알 수있으니 이부분은 별거 아닙니다.), 가로크기가 더 긴 이미지라면 가로 크기를 47로 줄이게 되는데, 이때 줄이는 비율을 알아내서 세로에 그 비율을 적용한 이미지의 크기를 사용하시면 됩니다. 세로의 크기가 더 큰 이미지라면 세로의 크기를 67로 줄이거나 늘리는 비율을 구해서 적용해주면 되구요.

    TImage의 속성만을 가지고 할수는 없습니다. 직접 Bitmap을 생성하셔서 적용된 것을 TImage에 Assign해주시면 됩니다. 이때 Stretch는 False로 해주셔야 겠죠.

    만약 속성만을 가지고 비율을 유지하고 싶다면, 다른 써드파티의 컴포넌트를 사용하셔야 합니다. (예:ImageEn)
  • Profile
    소울해커 2008.09.26 18:24

    일정 비율을 유지한다는게...

    1. 각 폼마다 이미지컴포넌트의 위치와 크기를 47, 67로 일정하게 잡아준다는건지

    2. 기본사이즈를 잡은후 다른폼에서 폼의 크기 변동에 따라서
    이미지컴포넌트의 크기가 변동이 될때 일정한 비율로 컴포넌트의 크기를 잡아준다는건지

    3. 이미지컴포넌트에 들어가 있는 이미지의 크기를 일정한 비율로 늘려준다는건지

    정확하지가 않군요.

    1번의 경우라면 Image1.SetBound(Image1.Left, Image1.Top, 47, 67); 으로 해결될겁니다.

    아니면 Object Inspector에서 Width값과 Height 값을 잡아주시면 될꺼구요.

    2번의 경우라면 일단 기본사이즈는 정하셨으니 크기가 변동될때 일정비율을 계산할 기준을 잡아주셔야겠죠.

    가로 기준이라면 기본가로 크기에 비례해서 몇%의 크기로 변했는지...

    세로 기준이라면 기본세로 크기에 비례해서 몇%의 크기로 변했는지...

    그 비율에 맞춰서 크기변동이 일어나는 시점에서

    가로 기준이면 Image1.SetBound(Image1.Left, Image1.Top, 47 * 가로비율, 67 * 가로비율);

    세로 기준이면 Image1.SetBound(Image1.Left, Image1.Top, 47 * 세로비율, 67 * 세로비율);

    이미지컴포넌트의 Stretch는 True로 잡아두시고 요렇게 수동으로 잡아주시면 됩니다.

    3번의 경우는 2번과 동일하고 다만 TBitmap을 하나 생성해서

    Canvas에 위 비율로 StretchDraw한걸 이미지 컴포넌트에 집어넣어주면되죠.



    아무래도 2번의 경우를 물어보신거 같은 느낌이...
  • Profile
    델만세 2008.09.26 18:37
    아....감사합니다..^^
    • 이강석
    • 2008.09.30 00:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이강석
      2008.09.30 20:21
      클라이언트 강제로 종료일경우 서버소켓에서 Excute에서 except on E : Exception do begi...
    • 이강석
      2008.10.02 03:13
      클라이언트도 마찬가지네요~~~~~쓰레드로 ReadLn하는데 그 Thread의 Excute함수에서 처리하면 되는군요.....
    • Jackie
    • 2008.09.29 20:22
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2008.09.29 21:22
      다른 인덱스를 설정하지 못합니다. 명시적으로 index가 0으로 지정되어 있고 Get이나 Set할 때 메소드...
    • 장성호
      2008.09.29 23:34
      최용일님 말씀대로 index는 바꾸지 못하구요 왜 바꾸지도 못하는 index 가 있는 이유에 대해 간단히 ...
    • Jackie
      2008.09.30 00:19
      답변주신 분들 정말 고맙습니다. 님들의 실력에 감탄하게 됩니다. 결국 제가 지금까지 잘못 코딩하...
    • 김상진
    • 2008.09.29 18:41
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2008.09.29 18:51
      WinExec나 ShellExecute등의 함수를 이용해서 프로그램을 실행시키시면 됩니다. WinExec('c:\test.exe...
    • 김상진
      2008.09.29 19:04
      메뉴마다 exe 파일을 다르게 실행시킬려구 하는데요... Sub1 클릭시 test.exe Sub2 클릭시 test2.exe ...
    • 장성호
      2008.09.29 19:14
      동적으로 생성되는 TMenuItem이 여러개인데.. MenuItem의 Click이벤트에서 어떤것을 클릭했는지 구분하...
    • steps
    • 2008.09.29 04:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • steps
      2008.10.07 03:58
      구글스크립트를 헤메고 다니다가 한번에 돌아오는 Url을 찾았습니다. http://translate.google.co.kr/tr...
    • 유경민
    • 2008.09.27 06:59
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.09.27 21:01
      책을 한권 사서 보시는 걸 권해 드립니다. 아니면 안터넷을 찾아 보시면 델파이 관련 pdf 파일을 찾으...
    • 델코이
    • 2008.09.27 05:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2008.09.27 05:41
      SN번호가 어쩌고 하는 이야기는 도저히 이해를 못하겠구요... BOX번호는 FormatFloat함수을 쓰시면 됩니...
    • steps
      2008.09.28 20:52
      참고가 될런지요 repeat inc(sn); if sn mod 15 =0 then begin inc(boxIndex); mark...
    • 석주현
      2008.09.27 02:57
      위에 함수 만들어 놓으셨으면 맨위에 Fixed 부분을 누를 경우 그때의 Checked 값을 넣어 주면 될 것 ...
    • 델만세
      2008.09.27 03:08
      안되는데요;;;; 체크조차 안되여.ㅋ.ㅋ 왜이러징.ㅋ.ㅋ
    • 석주현
      2008.09.27 03:13
      아마 인덱스를 잘못 쓰셔서 일 것 같은데요. 음 맨 윗부분은 따로 동작하는 거니 눌렸을 때 먼저 ...
    • 석주현
      2008.09.27 20:58
      아래와 같이 하면 될꺼 같은데요. ㅡ_ㅡ;; procedure StringGrid12.grdListClickCell(Sender: TObje...
    • 심영준
    • 2008.09.26 23:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • Crazy™
      2008.09.29 22:35
      db자동연결이라고 하셨는데 자동연결보다는 이후에 어떻게 처리를 하실지 고민을 먼저 하셔야 할겁니다. ...
    • 델코이
    • 2008.09.26 22:21
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장성호
      2008.09.26 23:04
      <!--CodeS--> procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var barc...
    • 델코이
      2008.09.26 23:22
      딱 맞네요..감사합니다..
    • 석주현
      2008.09.26 19:08
      Row의 카운트에서 - i 이런식으로 해주면 될꺼 같은데요. ㅡ_ㅡ;;
    • 델만세
      2008.09.26 20:46
      아~해결했어요~
    • 델초보
    • 2008.09.26 07:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.09.26 12:14
      DB의 목적이 무엇인지 정확히 알아야 조언이 가능할 것 같습니다. 단순히 로그만을 위한것이라면 사실 그...
    • 김영석
    • 2008.09.26 07:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.09.26 19:07
      2개파일을 하나로 만든다는게 무슨의미인지... 단순히 1번파일뒤에 2번파일을 가져다 붙인다는 건가...
    • 박상윤
      2008.09.26 23:58
      2개의 파일을 하나로만든 다는 것은 해더파일 을 고쳐야 하고 나머지 데이터를 뒤부분에 붙여야 하지죠...
    • 델만세
    • 2008.09.26 01:01
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.09.26 12:10
      비율을 유지한채 리사이즈를 하시려면 직접 코딩으로 하셔야 합니다.. 가로크기가 더 긴 이미지인지 ...
    • 소울해커
      2008.09.26 18:24
      일정 비율을 유지한다는게... 1. 각 폼마다 이미지컴포넌트의 위치와 크기를 47, 67로 일정하게 잡...
    • 델만세
      2008.09.26 18:37
      아....감사합니다..^^
    • 김경석
    • 2008.09.25 19:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.09.25 19:52
      공개되어있습니다...SourceForge 에가셔서 받으세요..
    • 박철우
    • 2008.09.25 19:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.09.25 19:56
      http://www.tmssoftware.com/site/diagram.asp 를 참고 하세요 ^^
    • 박성준
    • 2008.09.25 18:27
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.09.25 19:58
      등록되는 시점에서 실행되는 부분이 있는것 같습니다. 그 DLL의 Entry에 해당하는 이벤트를 확인하셔서 ...
    • 박성준
      2008.09.25 23:35
      델파이자체적으로 툴이 있는지 잘 몰라서 검색을 해보니 DLL Export Viewer 프로그램이 있는 것을 확인...
    • 후초보
    • 2008.09.25 03:10
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.09.25 11:07
      메인폼에 하나만 놓으시면 됩니다. 여러개 놓으시면 어차피 나머지는 동작하지 않습니다. 시리얼포트는 ...