|
저는 화면에서 변경되는 부분을 각각 Panel로 만들고, 그 위에 TImage를 얹고 배경을 보이게 했습니다.
또 버튼의 경우에는 TSpeedButton 으로 버튼을 만들고, SpeedButton->Glyph 에 버튼 그림을 지정했습니다.
SpeedButton.Flat=true
SpeedButton.Transparent=true
이렇게 설정하시면 됩니다.
이미지들은 프로그램 시작시에 다음과 같이 필요한 이미지들을 로딩했습니다.
이렇게 하면, 리소스가 분리되므로 실행파일의 크기가 작아집니다.
Image->LoadFromFile("...");
SpeedButton->Glyph->LoadFromFile("...");
버튼이나 이미지등에서 Transparet 설정을 하시면, 이미지의 pixel(0,0) 위치의 색상값을
자동으로 투명색으로 지정해서 그리게 되더군요.. 이미지의 다른 부분들이 0,0 위치의 색상을 이용하게 되면
버튼이나 배경의 중간에 구멍이 생겨버립니다.
저는 이것을 해결하기 위해서, 100x80 크기의 이미지라면, 100x82 사이즈로 이미지를 만들고
이미지의 맨 윗줄과 아랫줄에 RGB 255,0, 255(clFuchisa, 0x00FF00FF)으로 그립니다.
일반적으로 저 색상은 그래픽 툴 등에서 색상값들의 수치연산을 통해서는 잘 나오지를 않는다고 알고있습니다.
투명색을 이용해서 메인폼을 원하는 모양대로 보이게 할 수도 있습니다.
|