Автор: metamfetamin 9.12.2007 16:27
Каждая форма имеет размеры, координаты размещения, состояние(развернутое, свернутое), имеется кнопка закрытия. Форму можно перемещать по экрану, изменять ее размер в процессе работы.
1. При открытии форма должна размещаться с левого, верхнего угла
2. Размеры ее задать таким образом, чтобы форма была на весь экран
3. Убрать кнопки свернуть-развернуть
Как зделать следующие изменения в етом юните, что бы форма изменила три выше описаных компонента????
Код
unit Unit1;
interface
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
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.
Автор: volvo 9.12.2007 19:36
Цитата
Как зделать следующие изменения в етом юните, что бы форма изменила три выше описаных компонента????
В этом Юните ничего менять не надо... Все вышеперечисленное реализуется изменением настроек формы в Object Inspector-е...