![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Количество пунктов подменю в зависимости от количества CD-ROM'ов
Xrusha © (2005-08-24 05:01:00)Здравия всем!
В моей программе идёт автоопределение находящихся в системе CD-ROM, включая также и виртуальные. Код такой:
var u, mask, y : integer;
s, VolLabel, SN, FileSystem, s1: String;
begin
mask := GetLogicalDrives;
u := 0;
while mask<>0 do
begin
s:= chr( ord('A') + u) + ':/';
if (mask and 1) <> 0 then
case GetDriveType(PChar(s)) of
DRIVE_CDROM : ListBox1.Items.Add(s);
end;
inc(u); mask := mask shr 1;
end;
end;
А вопрос такой: можно ли в зависимости от количества CD-ROM'ов (т. е. от Count в ListBox1) автоматически создавать такое же количество пунктов подменю в PopupMenu? Т. е. во время работы приложения, если появляется или исчезает, например, Virtual CD, то соответственно появляется или исчезает пункт подменю.
А то мне логики, видимо, не хватает.
Xrusha (2005-08-25 13:57:00) [1]Спасибо!
KilkennyCat (2005-08-24 15:46:00) [2]VCL Reference
Create constructor (TMenuItem)
TMenuItem + ctrl+F1
выбираем Methods , затем Create
Xrusha (2005-08-24 13:44:00) [3]KilkennyCat, а не подскажете, где именно это написано. А то я что-то не могу найти.
KilkennyCat (2005-08-24 05:23:00) [4]
procedure TForm1.DestroyButtonClick(Sender: TObject);
var
ItemToDelete: TMenuItem;
begin
ItemToDelete := PopupMenu.Items[2];
ItemToDelete.Free;
end;
KilkennyCat (2005-08-24 05:22:00) [5]This example demonstrates how to add and delete menu items to a popup menu at runtime and assign an event handler to the OnClick event.
procedure TForm1.AddButtonClick(Sender: TObject);
var
index: Integer;
NewItem: TMenuItem;
begin
for index := 0 to 3 do
begin
NewItem := TMenuItem.Create(PopupMenu1); // create the new item
PopupMenu1.Items.Add(NewItem);// add it to the Popupmenu
NewItem.Caption := 'Menu Item ' + IntToStr(index);
NewItem.Tag := index;
NewItem.OnClick = PopupMenuItemsClick;// assign it an event handler
end;
end;
Справка Делфи, однако ;)