Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.11;
Скачать: CL | DM;

Вниз

Список дисков равен списку пунктов меню.   Найти похожие ветки 

 
Bomberman   (2002-10-30 16:52) [0]

Привет. Если кто-нибудь знает как в меню добавить список дисков, помогите. Нужно, чтобы в одном пункте меню был первый диск, в другом - следующий и т.д. Я знаю, что есть функции InsertMenu и AppendMenu. Но мне нужно, чтобы пункты меню добавлялись в соответствии с колличеством дисков. Помогите!!! Вот так я заполняю ComboBox:

procedure GetDrives;
var
I: integer;
LogDrives: set of 0..25;
DrvLetter: Char;
begin
Integer(LogDrives):=GetLogicalDrives;
for I := 0 to 25 do
if (I in LogDrives) then begin
DrvLetter:=Chr(I + 65);
if GetDriveType(PChar(DrvLetter+":\"))=DRIVE_FIXED then
Form1.ComboBox1.Items.Add(DrvLetter);

// InsertMenu(Menu, 0, mf_ByPosition, 10, Pchar(DrvLetter));

end;
end;


 
Calm   (2002-10-30 17:07) [1]

Что-то я не понял проблемы.
Под вечер туго с головой :(
Итак, получаем очередной диск, добавляем его в меню. Все Ok.
Или не ясно сколько дисков?
API-функции на этот случай я не знаю.
Видел на сайте компонент, который получал сведения о системе и о дисках в частности. Там можно глянуть.


 
Arcus   (2002-10-30 17:07) [2]

А Menu - что это?
Потому как InsertMenu/AppendMenu - API-шные функции и нужен хендл меню + уникальная комманда на каждый пункт.
Если Menu - VCL-ный контрол, то проще создавть новый TMenuItem и вставлять его в Menu.Items


 
Bomberman   (2002-10-30 17:36) [3]

Menu - не VCL. Это дескриптор меню hMenu.


 
Calm   (2002-10-30 17:37) [4]

Я так полагаю, суть не в том, куда добавлять, а что добавлять. Так?


 
Bomberman   (2002-10-30 17:48) [5]

Да!


 
Arcus   (2002-10-30 18:07) [6]

Тогда попробуй добавить флаг MF_STRING.


 
Bomberman   (2002-10-30 18:29) [7]

Причем тут MF_STRING?

Мне нужно добавить все имеющиеся диски как пункты меню. Если я добавляю так

InsertMenu(Menu, 0, mf_ByPosition, 10, Pchar(DrvLetter));

то добавляется только последний диск из списка.



 
TTCustomDelphiMaster   (2002-10-30 20:00) [8]

F1 - GetDriveType


 
Bomberman   (2002-10-30 21:03) [9]


> F1 - GetDriveType


Остроумно. Зачем мне хелп по GetDriveType, если я уже получил список дисков (см начало моего топика).


 
TTCustomDelphiMaster   (2002-10-30 21:48) [10]

Bomberman
Извеняюсь не заметил :)
if GetDriveType(PChar(DrvLetter+":\"))=DRIVE_FIXED then
begin
Form1.ComboBox1.Items.Add(DrvLetter);
InsertMenu(Menu, 0, mf_ByPosition, 10, Pchar(DrvLetter));
end;


 
TTCustomDelphiMaster   (2002-10-30 22:02) [11]

Вы неправильно работаете с данными полученными фанкцией GetLogicalDrives


 
Bomberman   (2002-10-30 22:39) [12]

Пожалуйста, направьте на путь истынный, а то башка уже расскалываеться.


 
PKT   (2002-10-31 04:46) [13]

to: Bomberman

Может быть лучше воспользоваться GetLogicalDriveStrings ?

var
P: PChar;
I: Integer;
begin
GetMem(P, 100);
FillChar(P^, 100, #0);
GetLogicalDriveStrings(100, P);
for I := 0 to 99 do
if (P[I] = #0) and (P[I+1] <> #0) then P[I] := #13;
ComboBox1.Items.Text := P;
FreeMem(P, 100);
end;



Страницы: 1 вся ветка

Текущий архив: 2002.11.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.007 c
1-34092
Zergling
2002-10-31 07:24
2002.11.11
Инспектор объектов как IDE Delphi


1-33924
AndreyAG
2002-10-30 14:04
2002.11.11
TTreeView


14-34240
X@o$
2002-10-21 10:59
2002.11.11
Памажите !!!


1-34080
Anonimus
2002-10-30 14:18
2002.11.11
Как узнать в какой кодировке находиться файл....


1-34107
iluxa
2002-10-31 16:30
2002.11.11
как проще сделать похожую форму





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский