Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.11.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
1-34109
Valt
2002-10-31 16:14
2002.11.11
Печать


1-33984
Шурик Ш
2002-11-01 16:29
2002.11.11
Общие ресурсы


4-34309
fishca
2002-10-02 20:09
2002.11.11
Программирование COM приложений на Delphi


14-34232
vopros
2002-10-23 15:21
2002.11.11
Давайте устроим интелектуальную дуель со мной.


4-34320
Nikolas ShmuS
2002-09-27 00:31
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский