지금껏 해본 질문중 가장 멍청한 질문입니다. -.-;
오픈픽쳐다이얼로그박스에서 파일을 열어 바로
리스트박스에 집어넣고 싶습니다. 안된다구요?
var
img:TPicture;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OPDG.Execute then
begin
img:=TPicture(OPDG.FindComponent(OPDG.FileName));
LSTB.Items.AddObject('Mr.Q', img);
end;
end;
FindComponent메소드로 이미지를 찾는것은 좀 이상하군요. TOpenDialog에서 이미지를
보여주는 곳은 판넬(TPanel)입니다. 이름은 없구요. FindComponent로 찾기가 불가능
하죠. FindWindow나 FindWindowEx로는 찾을 수 있겠지만 다이얼로그가 닫히면 거기에
있는 모든 객체가 Free됩니다. 그러므로 AddObject로 넣어보았자 nil이 들어갈뿐입니다.
아래와 같이 해보세요. 그럼 제대로 들어갑니다. 이걸 보여주는 것은 리스트박스의
OnDrawItem이벤트를 사용하시면 됩니다...
procedure TForm1.Button1Click(Sender: TObject);
begin
if OPDG.Execute then
begin
Img := TPicture.Create;
Img.LoadFromFile(OPDG.FileName);
LSTB.Items.AddObject('Mr.Q', Img);
end;
end;
^^ 항상 즐코하세요.
Mr.Q wrote:
> 지금껏 해본 질문중 가장 멍청한 질문입니다. -.-;
> 오픈픽쳐다이얼로그박스에서 파일을 열어 바로
> 리스트박스에 집어넣고 싶습니다. 안된다구요?
>
> var
> img:TPicture;
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> if OPDG.Execute then
> begin
> img:=TPicture(OPDG.FindComponent(OPDG.FileName));
> LSTB.Items.AddObject('Mr.Q', img);
> end;
> end;
>