자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi 멀티디바이스 프로그램에서 listboxitem에 사용자 정의 스타일 적용 문의
2019.03.29 11:12
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
delphi 10.2 사용중인 초보입니다.
1. 멀티디바이스 프로그램에서 listboxitem에 사용자 정의 스타일을 집어 넣고
FindStyleResource 로 대입한 내용이 스크롤을 움직이면 내용이 뒤죽박죽 됩니다.
[스크롤하기전]
[스크롤 내려갔다 올라옴]
2. StylesData['Text2Style'] 로 대입한 내용은 안바뀝니다.
TImage 나 TImageControl 의 Bitmap 에 StyleData[] 사용할때는 뭐라고 써야 하나요?
3. 뭔가 근본적인 방향이 잘못되었다면 지적 부탁드립니다.
... BeginUpdate/EndUpdate를 사용하면 listitem에 아무것도 안나옵니다.
... AddObject(listboxitem) 하면 전혀 다른 내용이 나옵니다.
procedure THeaderFooterForm.FormCreate(Sender: TObject);
var i:integer;
lstitem : TListBoxItem;
txt : TText;
img : TImage;
begin
listbox1.Items.Clear;
for i:=0 to 9 do
begin
lstitem := TListBoxitem.Create(listbox1);
lstitem.Parent := listbox1;
lstitem.StyleLookup := 'listboxitemImage2';
//스크롤해도 안바뀜
lstitem.StylesData['Text2Style'] := inttostr(i);
//스크롤하면 위치바뀜
txt := lstitem.FindStyleResource('Text1Style') as TText;
if assigned(txt) then
txt.text := inttostr(i);
img := lstitem.FindStyleResource('Image1Style') as TImage;
if assigned(img) then
img.bitmap.assign(TImageControl(self.FindComponent('img'+inttostr(i mod 3))).bitmap);
img := lstitem.FindStyleResource('Image1Style2') as TImage;
if assigned(img) then
img.bitmap.assign(TImageControl(self.FindComponent('imgV'+inttostr((i mod 3)+1))).bitmap);
lstitem.Height := 150;
end;
listbox2.Items.Clear;
for i:=0 to 9 do
begin
lstitem := TListBoxitem.Create(listbox2);
lstitem.Parent := listbox2;
lstitem.StyleLookup := 'listboxitemImage1';
//스크롤해도 안바뀜
lstitem.StylesData['Text2Style'] := inttostr(i);
//스크롤하면 위치바뀜
txt := lstitem.FindStyleResource('Text1Style') as TText;
if assigned(txt) then
txt.text := inttostr(i);
img := lstitem.FindStyleResource('Image1Style') as TImage;
if assigned(img) then
img.bitmap.assign(TImageControl(self.FindComponent('img'+inttostr(i mod 3))).bitmap);
lstitem.Height := 150;
end;
end;
댓글 0
Delphi 멀티디바이스 프로그램에서 listboxitem에 사용자 정의 스타일 적용 문의
2019.03.29 11:12
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
delphi 10.2 사용중인 초보입니다.
1. 멀티디바이스 프로그램에서 listboxitem에 사용자 정의 스타일을 집어 넣고
FindStyleResource 로 대입한 내용이 스크롤을 움직이면 내용이 뒤죽박죽 됩니다.
[스크롤하기전]
[스크롤 내려갔다 올라옴]
2. StylesData['Text2Style'] 로 대입한 내용은 안바뀝니다.
TImage 나 TImageControl 의 Bitmap 에 StyleData[] 사용할때는 뭐라고 써야 하나요?
3. 뭔가 근본적인 방향이 잘못되었다면 지적 부탁드립니다.
... BeginUpdate/EndUpdate를 사용하면 listitem에 아무것도 안나옵니다.
... AddObject(listboxitem) 하면 전혀 다른 내용이 나옵니다.
procedure THeaderFooterForm.FormCreate(Sender: TObject);
var i:integer;
lstitem : TListBoxItem;
txt : TText;
img : TImage;
begin
listbox1.Items.Clear;
for i:=0 to 9 do
begin
lstitem := TListBoxitem.Create(listbox1);
lstitem.Parent := listbox1;
lstitem.StyleLookup := 'listboxitemImage2';
//스크롤해도 안바뀜
lstitem.StylesData['Text2Style'] := inttostr(i);
//스크롤하면 위치바뀜
txt := lstitem.FindStyleResource('Text1Style') as TText;
if assigned(txt) then
txt.text := inttostr(i);
img := lstitem.FindStyleResource('Image1Style') as TImage;
if assigned(img) then
img.bitmap.assign(TImageControl(self.FindComponent('img'+inttostr(i mod 3))).bitmap);
img := lstitem.FindStyleResource('Image1Style2') as TImage;
if assigned(img) then
img.bitmap.assign(TImageControl(self.FindComponent('imgV'+inttostr((i mod 3)+1))).bitmap);
lstitem.Height := 150;
end;
listbox2.Items.Clear;
for i:=0 to 9 do
begin
lstitem := TListBoxitem.Create(listbox2);
lstitem.Parent := listbox2;
lstitem.StyleLookup := 'listboxitemImage1';
//스크롤해도 안바뀜
lstitem.StylesData['Text2Style'] := inttostr(i);
//스크롤하면 위치바뀜
txt := lstitem.FindStyleResource('Text1Style') as TText;
if assigned(txt) then
txt.text := inttostr(i);
img := lstitem.FindStyleResource('Image1Style') as TImage;
if assigned(img) then
img.bitmap.assign(TImageControl(self.FindComponent('img'+inttostr(i mod 3))).bitmap);
lstitem.Height := 150;
end;
end;