Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

//8FAT,FAT32,CDFS,NWCOMPA

//0-"A",1-"B",2-"C"

function GetFileSysName(Drive : Byte) : String;

function GetVolumeName(Drive : Byte) : String;

function DriveExists(Drive : Byte) : Boolean;

//'?';'Path2 does not exists';'Removable';'Fixed';'Remote';'CD-ROM';'RAMDISK'

function CheckDriveType(Drive : Byte) : String;

//Определение
готовности дисковода к работе

function DiskInDrive(const Drive: char): Boolean;

function HDDSerialNum(const drivePath:string{'C:\'}):integer;

{***************************CD-ROM*********************************************}

function getCdromPath:string;

procedure CDROMOpen;

procedure CDROMClose;

{***************************REGISTRY*******************************************}

procedure StartFromRegistry(appName,appPath:string);

//запускается до WindowsLogon

procedure StartServiceFromRegistry(appName,appPath:string);

procedure StartFromWinIni(appPath:string);

function IsInstalled (FileExe: String): Boolean;

IMPLEMENTATION

(*

Вопрос:

Можно ли как-то уменьшить мерцание при перерисовке компонента?

Ответ:

Если добавить флаг csOpaque (непрозрачный) к свойству ControlStyle компонента - то фон компонента перерисовываться не будет.

Пример:

constructor TMyControl.Create;

begin

 inherited;

 //проверка "if not inIDE" должна быть вставлена в том случае, когда TMyControl - компонент

 //чтобы среда IDE Delphi не глючила на этапе разработки

 if not inIDE then ControlStyle := ControlStyle + [csOpaque];

end;

...

procedure Register;

begin

 RegisterComponents('MyGraphics', [TMyControl]);

 inIDE:=True;

end;

*)

procedure mouseCursor(visi:boolean);

Var CState:Integer;

Begin

 CState:= ShowCursor(True);

 if visi then begin

//Включение
курсора

while CState<0 do CState:=ShowCursor(True);

 end else begin

//Выключение курсора

while Cstate >= 0 do Cstate := ShowCursor(False);

 end;

End;

//Cache,Cookies,Desktop,Favorites,Fonts,Personal,Programs,SendTo,Start Menu,Startup

function ShellFolder(const folderType:string):string;

var registry:TRegistry;

begin

 result:='';

 Registry := TRegistry.Create;

 try

Registry.RootKey := HKey_Current_User;

Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', False);

result:= Registry.ReadString(folderType);

 finally

Registry.Free;

 end;

end;

procedure SetWallpaper(const fileName:string;tile:boolean);

var Reg: TRegIniFile;

begin

 Reg:=TRegIniFile.Create('Control Panel');

 Reg.WriteString('desktop', 'Wallpaper', fileName);

 if tile then Reg.WriteString('desktop', 'TileWallpaper', '1')

 else Reg.WriteString('desktop', 'TileWallpaper', '0');

 Reg.Free;

 SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);

end;

{procedure setWallPaper(fileName:string);

begin

 SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, pChar(fileNAme), 0);

end;}

procedure refreshWindowsDesktop;

begin

 SendMessage(FindWindow('Progman', 'Program Manager'), WM_COMMAND, $A065, 0);

end;

procedure mouseEmul(absPoint:TPoint; up,down:boolean);

Поделиться с друзьями: