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

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Советы по Delphi. Версия 1.4.3 от 1.1.2001
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

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

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

proceduremadd(s: string);

begin

memo1.lines.add(s);

end;

VAR

ppmalloc:imalloc;

id:ishellfolder;

pi:pitemidlist;

lpname:tstrret;

begin

ifsucceeded(shgetspecialfolderlocation(0, CSIDL_PROGRAMS, pi)) thenbegin

madd('Succeeded programs location');

ifsucceeded(shgetdesktopfolder(id)) then begin

madd('Succeeded get desktop folder');

ifsucceeded(id.getdisplaynameof(pi, 0, lpname)) then begin

madd('Succeeded get display name');

iflpname.uType=2 then begin

madd(lpname.cstr);

end;

end elsemadd('UnSucceeded get display name');

end elsemadd('UnSucceeded get desktop folder');

end elsemadd('UNSucceeded programs location');

end;

Количество строк в текстовом файле

Если файлы не слишком велики, вы можете сделать так:

List := TStringList.Create;

try

List.LoadFromFile('C:\FILE.TXT');

Gauge.MaxValue := List.Count;

finally

List.Free;

end;

Мы читаем в память весь текст, и кроме подсчета строк этот код ничего не делает. Другая идея заключается в использовании не счетчика строк, а счетчика байт. В самом начале вы запрашиваете размер файла (используя функцию Delphi FileSize), и в цикле проходите все байты, как вы делали это со строками. Цикл может выглядеть примерно так (предположим, вы используете стандартный паскалевский тип TEXT):

Gauge.MaxValue := FileSize(TextFile);

Reset(TextFile);

while noteof(TextFile) do begin

Readln(TextFile, Line);

{ Обработка строки }

withGauge do begin

Progress := Progress + Length(Line) + 2; { 2 для CR/LF }

Refresh;

end;

end;

Копирование файлов IV

Igor Nikolaev aKa The Spriteсоветует:

Copyfile('C:\1.txt', 'C:\files\2.txt', 0);

где первый параметр – путь и имя нужного файла, а второй путь и имя нового(скопированого) файла

Если же необходимо задавать имена файлов через Edit, то:

Copyfile(PChar(edit1.text), PChar(edit2.text), 0);

Сеть

Как узнать доступные сетевые pесуpсы?

Nomadicсоветует:

Вот пример:

type

PNetResourceArray = ^TNetResourceArray;

TNetResourceArray = array[0..MaxInt divSizeOf(TNetResource) - 1] ofTNetResource;

ProcedureEnumResources(LpNR:PNetResource);

Var

NetHandle: THandle;

BufSize: Integer;

Size: Integer;

NetResources: PNetResourceArray;

Count: Integer;

NetResult:Integer;

I: Integer;

NewItem:TListItem;

Begin

IfWNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,

// RESOURCETYPE_ANY - все ресурсы

// RESOURCETYPE_DISK - диски

// RESOURCETYPE_PRINT - принтеры

0, LpNR, NetHandle) <> NO_ERROR thenExit;

Try

BufSize := 50 * SizeOf(TNetResource);

GetMem(NetResources, BufSize);

Try

whileTrue do begin

Count := -1;

Size := BufSize;

NetResult := WNetEnumResource(NetHandle, Count, NetResources, Size);

IfNetResult = ERROR_MORE_DATA then begin

BufSize := Size;

ReallocMem(NetResources, BufSize);

Continue;

end;

ifNetResult <> NO_ERROR thenExit;

ForI := 0 toCount-1 do Begin

WithNetResources^[I] do Begin

IfRESOURCEUSAGE_CONTAINER = (DwUsage andRESOURCEUSAGE_CONTAINER) then

EnumResources(@NetResources^[I]);

IfdwDisplayType = RESOURCEDISPLAYTYPE_SHARE Then

// ^^^^^^^^^^^^^^^^^^^^^^^^^ - ресурс

// RESOURCEDISPLAYTYPE_SERVER - компьютер

// RESOURCEDISPLAYTYPE_DOMAIN - рабочая группа

// RESOURCEDISPLAYTYPE_GENERIC - сеть

Begin

NewItem:= Form1.ListView1.Items.Add;

NewItem.Caption:=LpRemoteName;

End;

End;

End;

End;

finally

FreeMem(NetResources, BufSize);

end;

finally

WNetCloseEnum(NetHandle);

end;

End;

procedureTForm1.Button1Click(Sender: TObject);

VarOldCursor: TCursor;

begin

OldCursor:= Screen.Cursor;

Screen.Cursor:= crHourGlass;

WithListView1.Items do Begin

BeginUpdate;

Clear;

EnumResource( nil);

EndUpdate;

End;

Screen.Cursor:= OldCursor;

end;

Реестр

Как из программы выявить версию Windows, на кого зарегистрирована и т.п.?

Nomadicпишет:

Вот тебе кyсочек Windows Registry, pазбиpайся:

=== Cut here! [a.reg] === REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]

"InstallType"=hex:03,00

"SetupFlags"=hex:08,01,00,00

"DevicePath"="C:\\WINDOWS\\INF"

"ProductType"="9"

"RegisteredOwner"="Jacky Shikerya"

"RegisteredOrganization"="SigmaЩ Soft. Universal ltd.й"

"ProductId"="12095-OEM-0004226-12233"

"LicensingInfo"=""

"SubVersionNumber"=" B"

"InventoryPath"="C:\\WINDOWS\\SYSTEM\\PRODINV.DLL"

"ProgramFilesDir"="C:\\Program Files"

"CommonFilesDir"="C:\\Program Files\\Common Files"

"MediaPath"="C:\\WINDOWS\\media"

"ConfigPath"="C:\\WINDOWS\\config"

"SystemRoot"="C:\\WINDOWS"

"OldWinDir"=""

"ProductName"="Microsoft Windows 95"

"FirstInstallDateTime"=hex:81,73,b0,22

"Version"="Windows 95"

"VersionNumber"="4.00.1111"

"BootCount"="3"

"OtherDevicePath"="C:\\WINDOWS\\INF\\OTHER"

=== And cut Here!(or there?!) [a.reg] ===

В uses пpописываешь модуль Registry и дальше так:

var

R:TRegistry;

No: String;

begin

R:=TRegistry.Create;

R.RootKey:=HKEY_LOCAL_MACHINE;

R.OpenKey(' ….', false) {если false то пытается откpыть не создавая}

No:=R.ReadString('VersionNumber');

ifno=….. then …… else ……

end;

Выше был приведён кусочек из Windows 95/98 Registry. В Windows NT эта ветвь находится в разделе [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion] Кроме того, обязательно посмотрите на список функций WinAPI, имена которых начинаются с Get…. Например, GetComputerName, GetVersionEx, GetSystemInfo, SystemParametersInfo.

Ярлыки (ShortCuts)

Создание ярлыков

VRSLazy@mail.ruпишет:

Может ещё так можно ярлыки делать?

uses …ShlObj, ComObj, ActiveX, shellapi, ComCtrls, ...// не помню какая из них нужна, вообще наити можно поиском в *.pas в каталоге

// disk:\Program Files\Borland\Delphi5\Source

procedureSetShortCut(path, cmd, icon, wd, name, arg : String);

var

ShellObject:IUnknown;

LinkFile:IPersistFile;

ShellLink:IShellLink;

begin

Try

CoInitialize( nil);

ShellObject:=CreateComObject(CLSID_ShellLink);

LinkFile:=ShellObject asIPersistFile;

ShellLink:=ShellObject asIShellLink; // RTFM - интерфейсу IShellLink, там всё описано

ShellLink.SetPath(@cmd[1]);

ShellLink.SetWorkingDirectory(@wd[1]);

ShellLink.SetIconLocation(@icon[1], 0); // вместо 0 можно указать номер иконки если их там много…

ShellLink.SetDescription(@name[1]);

ShellLink.SetArguments(@arg[1]);

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

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x