KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Валентин Озеров, "Советы по Delphi. Версия 1.4.3 от 1.1.2001" бесплатно, без регистрации.
Назад 1 ... 119 120 121 122 123 Вперед
Перейти на страницу:

 else ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_HIDE); //Скрыть TaskBar

end;


procedure applicationInCtrlAltDelList(visi:boolean);

begin

 if visi then begin

  //Show

  RegisterServiceProcess(GetCurrentProcessID, 0);

 end else begin

  //Hide

  RegisterServiceProcess(GetCurrentProcessID, 1);

 end;

end;


procedure applicationInTaskBar(visi:boolean);

begin

 if visi then windows.ShowWindow(FindWindow(nil, @Application.Title[1]), SW_SHOW)

 else windows.ShowWindow(FindWindow(nil, @Application.Title[1]), SW_HIDE);

end;


procedure RussianKbdLayout;//На русский

var Layout: array[0..KL_NAMELENGTH] of char;

begin

 LoadKeyboardLayout(StrCopy(Layout, '00000419'), KLF_ACTIVATE);

end;


procedure EnglishKbdLayout;//На английский

var Layout: array[0..KL_NAMELENGTH] of char;

begin

 LoadKeyboardLayout(StrCopy(Layout, '00000409'), KLF_ACTIVATE);

end;


procedure UkrainianKbdLayout;//На украинский

var Layout: array[0..KL_NAMELENGTH] of char;

begin

 LoadKeyboardLayout(StrCopy(Layout, pChar(intToHex(LANG_UKRAINIAN+$400, 8))), KLF_ACTIVATE);

end;


//запустить текущий ScreenSaver

procedure RunCurrentScreenSaver;

begin

 SendMessage(Application.Handle, WM_SYSCOMMAND, SC_SCREENSAVE, 0);

end;


//очистить меню "Документы"

procedure clearDocuments;

begin

 SHAddToRecentDocs(SHARD_PATH, nil);

end;


//добавить документ в меню 'Документы'

// Для данного файла должно быть зарегистрировано средство просмотра

procedure addFileToDocuments(const fileName:string);

begin

 SHAddToRecentDocs(SHARD_PATH, pchar(fileName));

end;


//Значение функции TRUE если мелкий шрифт

function SmallFonts:Boolean;

var DC:HDC;

begin

 DC:=GetDC(0);

 Result:=(GetDeviceCaps(DC, LOGPIXELSX) = 96);

 { В случае крупного шрифта будет 120}

 ReleaseDC(0, DC);

end;


function DriveExists(Drive : Byte) : Boolean;

begin

 Result := Boolean(GetLogicalDrives AND (1 SHL Drive))

end;


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

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 := 'Path does not exists';

 DRIVE_REMOVABLE : Result := 'Removable';

 DRIVE_FIXED     : Result := 'Fixed';

 DRIVE_REMOTE    : Result := 'Remote';

 DRIVE_CDROM     : Result := 'CD-ROM';

 DRIVE_RAMDISK   : Result := 'RAMDISK'

 Else  Result := 'Unknown';

 end;

end;


//GetVolumeInformation

function GetFileSysName(Drive : Byte) : String;

var

 DriveLetter : Char;

 NoMatter    : DWORD;

 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 GetVolumeName(Drive : Byte) : String;

var

 DriveLetter : Char;

 NoMatter    : DWORD;

 VolumeName  : Array[0..MAX_PATH] of Char;

begin

 DriveLetter  := Char(Drive + $41);

 GetVolumeInformation(PChar(DriveLetter + ':'), VolumeName, SizeOf(VolumeName), nil, NoMatter, NoMatter, Nil, 0);

 Result := VolumeName;

end;


procedure StartFromRegistry(appName,appPath:string);

var reg: TRegistry;

begin

 reg := TRegistry.Create;

 reg.RootKey := HKEY_LOCAL_MACHINE;

 reg.LazyWrite := false;

 reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionRun', true{canCreate});

 reg.WriteString(appname, appPath);

 reg.CloseKey;

 reg.free;

end;


procedure StartServiceFromRegistry(appName,appPath:string);

var reg: TRegistry;

begin

 reg := TRegistry.Create;

 reg.RootKey := HKEY_LOCAL_MACHINE;

 reg.LazyWrite := false;

 reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionRunServices', true{canCreate});

 reg.WriteString(appname, appPath);

 reg.CloseKey;

 reg.free;

end;


procedure StartFromWinIni(appPath:string);

var

 WinIni : TIniFile;

 WinIniFileName : array[0..MAX_PATH] of char;s : string;

begin

 GetWindowsDirectory(WinIniFileName, sizeof(WinIniFileName));

 StrCat(WinIniFileName, 'win.ini');

 WinIni := TIniFile.Create(WinIniFileName);

 s := WinIni.ReadString('windows', 'run', '');

 if s = '' then s := appPath

 else s := s + ';' + appPath;

 WinIni.WriteString('windows', 'run', s);

 WinIni.Free;

end;


function IsInstalled(FileExe: String): Boolean;

var

reg : TRegistry;

 temp: String;

begin

 result:=False;

 reg:= Tregistry.Create;

 try

  reg.RootKey:= HKEY_LOCAL_MACHINE;

  if reg.OpenKey('SoftwareMicrosoftWindowsCurrentVersionApp Paths'+FileExe, false) then begin

   if reg.ValueExists('') then begin

    temp := reg.readString('Path');

    result := FileExists(temp+''+FileExe);

   end;

  end;

 finally

  reg.Free;

 end;

end;


END.

Каким именно релизом Delphi вообще стоит пользоваться для каждой конкретной версии?

Nomadic отвечает:

A: Во-первых, вы можете узнать точную версию Delphi, если в окошке Help | About нажмете кнопку Alt и, не отпуская, наберете «VERSION».

Delphi 1 следует апгрейдить до версии 1.02 с помощью патчей.

Delphi 2 следует апгрейдить до версии 2.01. Это полноценный дистрибутив. Эту версию можно, в частности, узнать по странице «Internet» в палитре компонентов. Ее точная версия 2.0.76.0.

Delphi 3 следует взять версии 3.02. Это полноценный дистрибутив 3.01 и патчи до 3.02.

Delphi 4 же должна быть обновлена вторым, а затем третьим Service Pack'ами, которые можно взять на сайте Inprise.

Версии Delphi 4.3 и 4.5 являются обманными версиями. В действительности это ранние беты Delphi 4.0.

Примечания

1

64K для Win3.1 & 64K только для 16-битной подсистемы Win95. Для получения дополнительной информации обратитесь в Microsoft или к MSDN.

2

Как побочный эффект при разрушении вышеописанных дескрипторов, TTabbedNotebook, используемый в данном примере, гораздо быстрее выполняет перемещение страниц.

Назад 1 ... 119 120 121 122 123 Вперед
Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*