// Тут посмотри точно название этой

  // функции в хелпе по LoadLibrary.

  // Имя_Искомой_Процедуры должно

  // быть один в один с именем процедуры

  // в библиотеке с учетом регистров.

  if p=nil then begin

   // Процедура не найдена

  end else proc1:=prc1(p);

end;

Как передать при создании нити (Tthread) ей некоторое значение? 

К примеру, функция "прослушивает" каталог на предмет файлов. Если находит, то создает нить, которая будет обрабатывать файл. Потомку надо передать имя файла, а вот как? 

Странный вопрос. Я бы понял, если бы требовалось передавать данные во время работы нити. А так обычно поступают следующим образом.

В объект нити, происходящий от TThread дописывают поля. Как правило, в секцию PRIVATE. Затем переопределяют конструктор CREATE, который, принимая необходимые параметры заполняет соответствующие поля. А уже в методе EXECUTE легко можно пользоваться данными, переданными ей при его создании.

Например:

......

TYourThread = class(TTHread)

private

 FFileName: String;

protected

 procedure Execute; overrided;

public

 constructor Create(CreateSuspennded: Boolean; const AFileName: String);

end;

.....

constructor TYourThread.Create(CreateSuspennded: Boolean; const AFileName: String);

begin

 inherited Create(CreateSuspennded);

 FFIleName := AFileName;

end;

procedure TYourThread.Execute;

begin

 try

  ....

  if FFileName = ...

  ....

 except

  ....

 end;

end;

....

TYourForm = class(TForm)

....

private

 YourThread: TYourThread;

 procedure LaunchYourThread(const AFileName: String);

 procedure YourTreadTerminate(Sender: TObject);

 ....

end;

....

procedure TYourForm.LaunchYourThread(const AFileName: String);

begin

 YourThread := TYourThread.Create(True, AFileName);

 YourThread.Onterminate := YourTreadTerminate;

 YourThread.Resume

end;

....

procedure TYourForm.YourTreadTerminate(Sender: TObject);

begin

 ....

end;

 ....

end.

СGI программа должна показывать GIF изображение.

Имею тег.  Прочитать JPeg, указать ContentType=Image/jpeg и выдать изображение в SaveToStream умею. Как сделать тоже самое для файлов GIF, в особенности анимационных? Если можно просто перелить дисковый файл (пусть он хоть трижды GIF) в Response CGI-програмы, то как это сделать? 

Выдайте из скрипта следующее: 

Content-type: image/gif  

<содержимое gif-файла>

<p>Советы по работе с реестром. </p><p>Использование некоторых ключей реестра </p>Добавление элементов в контекстное меню "Создать"

1. Создать новый документ, поместить его в папку Windows/ShellNew

2. В редакторе реестра найти расширение этого файла, добавить новый подключ, добавить туда строку: FileName в качестве значения которой указать имя созданного файла.

Путь к файлу который открывает не зарегистрированные файлы

1. Найти ключ HKEY_CLASSES_ROOT\Unknown\Shell

2. Добавить новый ключ Open

3. Под этим ключом еще ключ с именем command в котором изменить значение (По умолчанию) на имя запускаемого файла, к имени нужно добавить %1. (Windows заменит этот символ на имя запускаемого файла)

В проводнике контекстное меню "Открыть в новом окне"

1. Найти ключ HKEY_CLASSES_ROOT\Directory\Shell

2. Создать подключ: opennew в котором изменить значение (По умолчанию) на: "Открыть в новом окне"

3. Под этим ключом создать еще подключ command (По умолчанию) = explorer %1

Использование средней кнопки мыши Logitech в качестве двойного щелчка

Подключ HKEY_LOCAL_MACHINE\SoftWare\Logitech и там найти параметр DoubleClick заменить 000 на 001

Новые звуковые события

Например создает звуки на запуск и закрытие WinWord

HKEY_CURRENT_USER\AppEvents\Shemes\Apps добавить подключ WinWord и к нему подключи Open и Close.

Теперь в настройках звуков видны новые события

Путь в реестре для деинсталяции программ:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall

<p>Работа с реестром в Delphi 1 </p>
Перейти на страницу:

Похожие книги