Q&A

  • 동적메뉴 생성시 도와주세요 ~~~
//////// 일단 예제입니다 ////////////



procedure TForm1.Button1Click(Sender: TObject);

var

a : string;

i : integer;

menu: TMenuItem;



begin



a := 'E:josgogi.mpg';



for i := N21.Count - 1 downto 0 do

N21.Remove(N21.Items[i]);



FilterGraph.ClearGraph;

FilterGraph.FilterGraph2.RenderFile(StringToOleStr(a),nil);

GetFilterList(FilterGraph.FilterGraph2,Listbox1.Items);

FilterGraph.QueryInterfaces;

FilterGraph.MediaControl.Run;



for i := 0 to Listbox1.items.count -1 do

begin

menu := TMenuItem.Create(Self);

menu.Caption := Listbox1.items[i];

menu.OnClick := MenuClick; // click 이벤트

N21.Add(menu);

end;

end;





// 필터리스트 뽑기

procedure TForm1.GetFilterList(graph: IFilterGraph; list: TStrings);

var

EnumFilters: IEnumFilters;

BaseFilter: IBaseFilter;

FilterInfo: TFilterInfo;

begin

list.Clear;

graph.EnumFilters(EnumFilters);

While (EnumFilters.Next(1, BaseFilter, nil)=S_OK) do

begin

BaseFilter.QueryFilterInfo(FilterInfo);

list.Add(FilterInfo.achName);

end;

end;





// 클릭 이벤트

procedure TForm1.MenuClick(Sender: TObject);

begin

if Sender is TMenuItem then

begin

ShowMessage((Sender as TMenuItem).Caption);

end;

end;







위에 예제 보면요, 리스트박스에 있는 넘을 메뉴에 집어넣었거든요. 그런데 이게 파일에 따라 다 달라요.

제가 기초없이 배워서 헷갈리는게 많아서요.

예제 찍어붙어서 연습중인데요 ~~~~

GetFilterList 라는 함수가 GetFilterList(graph: IFilterGraph; list: TStrings) 형으로 선언했구요.

TmenuItem은 String형이더라구요. 그런데 이 넘을 바로 메뉴에 넣고 싶거든요.

데이터형땜시 그러는건 아는디 해결 방법좀 갈카 주십시오 ~~~~~~~~!!!

어케 하면 될까요??? 이걸 하나로 합쳐서 걍 메뉴에 바로 넣고 싶습니다.

하다가 막 짜증만 나고 그러네요 ....

0  COMMENTS