Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2007, 20:50   #1
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию

Задание: В Delphi разработать программу, которая использует системные функции для получения информации о файловой системе
Пояснения: Используются следующие системные функции:
GetLogicalDrivers - выдает информацию в виде 32-битового значения, каждый из которых указывает наличие или отсутствие логического устройства
GetDriveType - определяет тип накопителя
GetVolumeInformation - определяет тип файловой системы и др. параметры
1. В среде Delphi разработать форму с комонентами TListBox и Tlabel
2. Определить перечень логических устройст ОС, их номера и типы, название файловой системы, длину имени файла
3. Полный текст модуля формы:

Код:
unit Unit1; 
int
erface 
uses 
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
StdCtrls; 
type 
TForm1 = class(TForm) 
ListBox1: TListBox; 
Label1: TLabel; 
Label2: TLabel; 
Label3: TLabel; 
Label4: TLabel; 
procedure FormCreate(Sender: TObject); 
procedure ListBox1Click(Sender: TObject); 
private 
{ Private declarations } 
public 
{ Public declarations } 
end; 
var
Form1: TForm1; 
implementation 
{$R *.DFM} 
function DriveExists(Drive: Byte):boolean; 
var 
LogDrives: set of 0..25; 
begin 
Integer(LogDrives):=GetLogicalDrives; 
Result:=Drive in LogDrives; 
end; 
procedure TForm1.FormCreate(Sender: TObject); 
var 
D:byte; 
begin 
for d:=0 to 25 do 
if DriveExists(D) then v 
begin 
ListBox1.Items.Add(Chr(D+$41)); 
end; 
end; 
function CheckDriveType(Drive:byte):String; 
var 
DriveLetter:Char; 
DriveType:UInt; 
begin 
DriveLetter:=Char(Drive+$41); 
DriveType:=GetDriveType(PChar(DriveLetter+':\')); 
Case DriveType of 
0 : Result:='Тип устройства не определен'; 
1 : Result:='Корневой каталог не существует'; 
DRIVE_REMOVABLE : Result:='Дисковод со сменным носителем'; 
DRIVE_FIXED : Result:='Дисковод с несменным носителем'; 
DRIVE_REMOTE : Result:='Сетевое устройство'; 
DRIVE_CDROM : Result:='Привод CD-ROM'; 
DRIVE_RAMDISK : Result:='Диск, созданный в памяти (RAM)'; 
else 
Result:='Не определен' 
end; 
end; 
function GetFileSysName(Drive:byte):String; 
var 
DriveLetter :Char; 
NoMatter:Cardinal; 
FileSysName:Array[0..MAX_PATH] of Char; 
begin 
DriveLetter:=Char(Drive+$41); 
GetVolumeInformation(PChar(DriveLetter+':\'),nil, 
0,Nil,NoMatter,NoMatter,FileSysName,SizeOf(FileSysName));
result:=FileSysName; 
end; 
function GetFileSysLen(Drive:byte):Integer; 
var 
DriveLetter :Char; 
NoMatter:Cardinal; 
FileSysName:Array[0..MAX_PATH] of Char; 
begin 
DriveLetter:=Char(Drive+$41); 
GetVolumeInformation(PChar(DriveLetter+':\'),nil, 
0,Nil,NoMatter,NoMatter,FileSysName,SizeOf(FileSysName)); 
result:=SizeOf(FileSysName); 
end; 
procedure TForm1.ListBox1Click(Sender: TObject); 
var
Drive:byte; 
begin 
with ListBox1 do drive:= ord(Items[ItemIndex][1])-$41; 
Label1.Caption:='Номер устройства = ' + intToStr(drive); 
Label2.Caption:=CheckDriveType(Drive); 
Label3.Caption:='Название файловой системы - ' + GetFileSysName(Drive); 
Label4.Caption:='Длина имени файла = ' + IntToStr(GetFileSysLen(Drive)); 
end; 
end.
Мне не понятно какие кнопки нужно использывать в меню Form и как их синхронизировать с моим unit(ом)

Последний раз редактировалось Stilet; 05.11.2007 в 10:09.
metamfetamin вне форума Ответить с цитированием
Старый 05.11.2007, 10:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А зачем тебе кнопки? В задании ничего не сказано...
Насколько я понял у тебя по клику в списке на некоторый элементв Лабели выводится инфа по этому элементу
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2007, 10:47   #3
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А зачем тебе кнопки? В задании ничего не сказано...
Насколько я понял у тебя по клику в списке на некоторый элементв Лабели выводится инфа по этому элементу
Так я не пойму что нужно зделать??????
Походу все равно ж надо какие то елементы в меню form вствлять???
Ето как я понимаю что типа мониторинга???? Т.е показывает инфу которая на компе???????
metamfetamin вне форума Ответить с цитированием
Старый 05.11.2007, 11:04   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А ты пробовал в действии эту прогу?
Там в Список при запуске скидывается перечень девайсов.
Когда ты кликаешь по одному из них в Лабели выводится конкретная инфа по выбраному девайсу.

Код вроде рабочий (на глаз проверял), меню тебе зачем, препод требует?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2007, 11:20   #5
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А ты пробовал в действии эту прогу?
Прежде чем ее пробывать нужно в форму (меню form) накидать пару менюшок (кнопок).......в данном случае:
ListBox1: TListBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Я правильно понимаю????
Потом ети самые кнопки синхронизировать с юнитом (моим)??????




Цитата:
.............меню тебе зачем, препод требует?
Мне ему нужно ето все показать в Форме с етими всеми кнопками!!!!!
metamfetamin вне форума Ответить с цитированием
Старый 05.11.2007, 11:25   #6
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию

И такой вопрос. Что значит синхронизировать!!!!!???????
metamfetamin вне форума Ответить с цитированием
Старый 05.11.2007, 12:01   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Сообщение от metamfetamin Посмотреть сообщение
Я правильно понимаю????
В целом да, исключая то что это не кнопки а Список и Лабели
Цитата:
Сообщение от metamfetamin Посмотреть сообщение
Что значит синхронизировать!!!!!???????
В данном случае это имеется ввиду подставить процедуры твоего юнита в соответствующие события для списка и формы
т.е. в Событие ListBox.OnClick и Form.OnCreate.
I'm learning to live...

Последний раз редактировалось SuperVisor; 08.11.2007 в 13:17. Причина: Тэг поправил
Stilet вне форума Ответить с цитированием
Старый 05.11.2007, 12:30   #8
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию

Вроде все работает......отображает количество всех дисков виртуальных и логических которые находятся в моем копьютере......но я немогу понять зачем здесь кнопки label что именно они должны отображать или что через них делается........просто в даном случае они не отображают и не несут под собой никакой информаци!!!!?????????

Последний раз редактировалось metamfetamin; 05.11.2007 в 12:34.
metamfetamin вне форума Ответить с цитированием
Старый 05.11.2007, 13:04   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
зачем здесь кнопки label
просто в даном случае они не отображают и не несут под собой никакой информаци!!!!?????????
В коде четко написано что они должны отображать.
Это не кнопки, а такие себе "средства отображения текста на форме".
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.11.2007, 15:27   #10
metamfetamin
Пользователь
 
Аватар для metamfetamin
 
Регистрация: 02.11.2007
Сообщений: 68
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В коде четко написано что они должны отображать.
Это не кнопки, а такие себе "средства отображения текста на форме".
Ти не мог бы мне подсказать какая именно строка (строки) в листинге указывает на то что ети так называемые "средства отображения текста" будуит отображать???????
То есть, как я понимаю, их необходимо только переиминовать???????
Если да то в что???????? потомучто по листингу на немогу сообразить в что!!!!!!!!!!!!!!!




Все вроде бы разобрался!!!!!!!!! Еще у учителя спрошу в среду, если что то будет не ясно, спрошу снова!!!!!!

Последний раз редактировалось metamfetamin; 06.11.2007 в 15:11.
metamfetamin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа которая делает кроссворд Иллидан Софт 15 02.12.2014 06:34
Получнение информации о системе. Функция GetSystemInfo Д'якон Win Api 10 23.01.2012 03:57
com-программа, которая блокирует клавиатуру Белка Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 26.11.2007 14:37
Текущая политика безопасности не позволяет получать доступ к файловой системе. JavaScript studenth JavaScript, Ajax 12 06.10.2007 13:04