Здравствуйте.
Динамически добавляю пункты в меню, но надпись в первом пункте всегда обрезана. Хотя, если идти дебаггером, то видно, что в Caption первого пункта меню содержится полная строка.
Почему он ее обрезает и как сделать, чтобы не обрезал?
function TYouTubeVideo.GetDisplayString;
begin
if Pos('audio', MimeType) > 0 then
Result := IntToStr(Tag) + ', audio, '+ FileExtension + ', ' +
MimeType + ', ' + DivSize(File_Size) + ', 12345678901234567890' else
Result := IntToStr(Tag) + ', video, ' +
IntToStr(Width) + 'x' + IntToStr(Height) + ', ' + FileExtension + ', ' +
QualityLabel + ', ' + MimeType + ', ' + '12345678901234567890';
end;
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.Caption := thr.fInfoVideo[i].GetDisplayString;
MenuItem.Tag := i;
MenuItem.GroupIndex := Byte(GROUP_VIDEO);
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.Caption := thr.fInfoAudio[i].GetDisplayString;
MenuItem.Tag := i;
MenuItem.GroupIndex := Byte(GROUP_AUDIO);
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;