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

Здесь есть возможность читать онлайн «Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Советы по Delphi. Версия 1.4.3 от 1.1.2001: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Советы по Delphi. Версия 1.4.3 от 1.1.2001»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Советы по Delphi. Версия 1.4.3 от 1.1.2001», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

functionReadIni(ASection, AString : String) : String;

var

sIniFile: TIniFile;

sPath : String[60];

begin

GetDir(0,sPath);

sIniFile := TIniFile.Create(sPath + '\Name.INI');

Result := sIniFile.ReadString(ASection, AString, S);

sIniFile.Free;

end;

procedureWriteIni(ASection, AString, AValue: String);

var

sIniFile: TIniFile;

sPath : String[60];

begin

GetDir(0,sPath);

sIniFile := TIniFile.Create(sPath + '\Name.INI');

sIniFile.WriteString(ASection, AString, AValue);

sIniFile.Free;

end;

TRegistry

Дополненный TRegistry, умеет работать с значениями типа REG_MULTI_SZ (Windows NT, Windows 2000)

Кондратюк Виталийсоветует:

unitReg;

{$R-,T-,H+,X+}

interface

usesRegistry, Classes, Windows, Consts, SysUtils;

typeTReg = class(TRegistry)

public

procedureReadStringList( constname : string; list : TStringList);

procedureWriteStringList( constname : string; list : TStringList);

end;

implementation

//*** TReg *********************************************************************

//------------------------------------------------------------------------------

// Запись TStringList ввиде значения типа REG_MULTI_SZ в реестр

//------------------------------------------------------------------------------

procedureTReg.WriteStringList( constname : string; list : TStringList);

var

Buffer : Pointer;

BufSize : DWORD;

i, j, k : Integer;

s : string;

p : PChar;

begin

{подготовим буфер к записи}

BufSize := 0;

fori:=0 tolist.Count-1 do inc(BufSize, Length(list[i])+1);

inc(BufSize);

GetMem(Buffer, BufSize);

k := 0;

p := Buffer;

fori:=0 tolist.Count-1 do begin

s := list[i];

forj:=0 toLength(s)-1 do begin

p[k] := s[j+1];

inc(k);

end;

p[k] := chr(0);

inc(k);

end;

p[k] := chr(0);

{запись в реестр}

ifRegSetValueEx(CurrentKey, PChar(name), 0, REG_MULTI_SZ, Buffer, BufSize) <> ERROR_SUCCESS then raiseERegistryException.CreateResFmt(@SRegSetDataFailed, [name]);

end;

//------------------------------------------------------------------------------

// Чтение TStringList ввиде значения типа REG_MULTI_SZ из реестра

//------------------------------------------------------------------------------

procedureTReg.ReadStringList( constname : string; list : TStringList);

var

BufSize,DataType: DWORD;

Len, i: Integer;

Buffer: PChar;

s: string;

begin

iflist = nil thenExit;

{чтение из реестра}

Len := GetDataSize(Name);

ifLen < 1 thenExit;

Buffer := AllocMem(Len);

ifBuffer = nil thenExit;

try

DataType := REG_NONE;

BufSize := Len;

ifRegQueryValueEx(CurrentKey, PChar(name), nil, @DataType, PByte(Buffer), @BufSize) <> ERROR_SUCCESS then raiseERegistryException.CreateResFmt(@SRegGetDataFailed, [name]);

ifDataType <> REG_MULTI_SZ then raiseERegistryException.CreateResFmt(@SInvalidRegType, [name]);

{запись в TStringList}

list.Clear;s := '';

fori:=0 toBufSize-2 do begin

// BufSize-2 т.к. последние два нулевых символа

ifBuffer[i] = chr(0) then begin

list.Add(s);

s := '';

end else s := s + Buffer[i];

end;

finally

FreeMem(Buffer);

end;

end;

end.

Как я могу определить доступные сервера приложений на этой машине через Registry?

Nomadicсоветует:

Прочитайте ключ под HKEY_CLASSES_ROOT\CLSID\*, просматривая его насчёт ключей, которые имеют подключ "Borland DataBroker". Эти вхождения и являются серверами приложений.

Ниже пример, который загружает имена доступных серверов приложений в Listbox:

usesRegistry;

procedureTForm1.FormCreate(Sender: TObject);

var

I: integer;

TempList: TStringList;

begin

TempList := TStringList.Create;

try

with TRegistry.Create do try

RootKey := HKEY_CLASSES_ROOT;

ifOpenKey('CLSID', False) thenGetKeyNames(TempList);

CloseKey;

forI := 1 toTempList.Count - 1 do

ifKeyExists('CLSID\' + TempList[I] + '\Borland DataBroker') then begin

ifOpenKey('CLSID\' + TempList[I] + '\ProgID', False) then begin

Listbox1.Items.Add(ReadString(''));

CloseKey;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Представляем Вашему вниманию похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Обсуждение, отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x