type
TGROUP_ID = (GROUP_AUDIO, GROUP_VIDEO, GROUP_CONTAINER);
procedure TYouTubeFrameVideo.MenuItemDownloadClick(Sender: TObject);
var
thr : TThreadFather;
mi : TMenuItem;
begin
if cfg.TemporaryPath = '' then
begin
ShowMessage('Не указана папка для временных файлов!');
Exit;
end;
mi := Sender as TMenuItem;
if mi.GroupIndex <> Byte(GROUP_AUDIO) then //тут всегда 1
begin
procedure TYouTubeFrameVideo.ThreadGetInfoTerminate(Sender: TObject);
var
thr : TThreadGetInfo;
i, n : Integer;
pt : TPoint;
MenuItem : TMenuItem;
begin
thr := sender as TThreadGetInfo;
PopupMenuDownloads.Items.Clear;
for I := 0 to Length(VideoFormats) - 1 do
VideoFormats[i].Destroy;
SetLength(VideoFormats, 0);
for I := 0 to Length(AudioFormats) - 1 do
AudioFormats[i].Destroy;
SetLength(AudioFormats, 0);
for I := 0 to Length(thr.fInfoVideo) - 1 do
begin
n := Length(VideoFormats);
SetLength(VideoFormats, n + 1);
VideoFormats[n] := thr.fInfoVideo[i];
MenuItem := TMenuItem.Create(nil);
MenuItem.OnMeasureItem := MenuItemMeasureItem;
MenuItem.OnDrawItem := MenuItemDrawItem;
MenuItem.Caption := thr.fInfoVideo[i].GetDisplayString;
MenuItem.Tag := i;
MenuItem.GroupIndex := Byte(GROUP_VIDEO); //тут 1
MenuItem.OnClick := MenuItemDownloadClick;
PopupMenuDownloads.Items.Add(MenuItem);
end;
if Length(thr.fInfoAudio) > 0 then
begin
MenuItem := TMenuItem.Create(nil);
MenuItem.Caption := '-';
PopupMenuDownloads.Items.Add(MenuItem);
SetLength(AudioFormats, length(thr.fInfoAudio));
for I := 0 to Length(thr.fInfoAudio) - 1 do
begin
AudioFormats[i] := thr.fInfoAudio[i];
MenuItem := TMenuItem.Create(nil);
MenuItem.OnMeasureItem := MenuItemMeasureItem;
MenuItem.OnDrawItem := MenuItemDrawItem;
MenuItem.Caption := thr.fInfoAudio[i].GetDisplayString;
MenuItem.Tag := i;
MenuItem.GroupIndex := byte(GROUP_AUDIO); //тут 0
MenuItem.OnClick := MenuItemDownloadClick;
PopupMenuDownloads.Items.Add(MenuItem);
end;
end;
pt := btnDownload.ClientToScreen(TPoint.Create(btnDownload.Width, 0));
btnDownload.Enabled := True;
PopupMenuDownloads.Popup(pt.X, pt.Y);
end;
Почему в MenuItemDownloadClick() GroupIndex всегда равно 1, хотя при создании пунктов меню во втором цикле туда присваивается 0?