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

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

Уважаемые читатели!
Тут можно читать бесплатно Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров. Жанр: Программирование. Так же Вы можете читать полную версию (весь текст) онлайн книги без регистрации и SMS на сайте Knigi-online.info (книги онлайн) или прочесть краткое содержание, описание, предисловие (аннотацию) от автора и ознакомиться с отзывами (комментариями) о произведении.
Описание онлайн-книги Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров:
…начиная с 1001. Смотрите другие файлы…
Читем онлайн Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 102 103 104 105 106 107 108 109 110 ... 123

   03030303030303F8FF0303F8FF03030303030303030303030303FA0202020403

   030303030303030303030303F8FF0303F8FF03030303030303030303030303FA

   0202040303030303030303030303030303F8FF03F8FF03030303030303030303

   03030303FA0202030303030303030303030303030303F8FFF803030303030303

   030303030303030303FA0303030303030303030303030303030303F803030303

   0303030303030303030303030303030303030303030303030303030303030303

   0303

  }

  Margin = 2

  NumGlyphs = 2

  Spacing = -1

  IsControl = True

 end

 object CancelBtn: TBitBtn

  Left = 108

  Top = 216

  Width = 69

  Height = 39

  Caption = '&Отмена'

  TabOrder = 4

  Kind = bkCancel

  Margin = 2

  Spacing = -1

  IsControl = True

 end

 object Panel2: TPanel

  Left = 16

  Top = 88

  Width = 153

  Height = 49

  BevelInner = bvLowered

  BevelOuter = bvNone

  TabOrder = 1

  object Label1: TLabel

   Left = 24

   Top = 8

   Width = 5

   Height = 13

  end

  object Label2: TLabel

   Left = 8

   Top = 8

   Width = 48

   Height = 13

   Caption = 'Значение 2:'

  end

  object Edit2: TEdit

   Left = 8

   Top = 24

   Width = 121

   Height = 20

   MaxLength = 10

   TabOrder = 0

   Text = '0'

  end

 end

 object Panel1: TPanel

  Left = 16

  Top = 16

  Width = 153

  Height = 49

  BevelInner = bvLowered

  BevelOuter = bvNone

  TabOrder = 0

  object Label4: TLabel

   Left = 8

   Top = 8

   Width = 48

   Height = 13

   Caption = 'Значение 1:'

  end

  object Edit1: TEdit

   Left = 8

   Top = 24

   Width = 121

   Height = 20

   MaxLength = 10

   TabOrder = 0

   Text = '0'

  end

 end

 object Panel3: TPanel

  Left = 16

  Top = 144

  Width = 153

  Height = 49

  BevelInner = bvLowered

  BevelOuter = bvNone

  TabOrder = 2

  object Label6: TLabel

   Left = 8

   Top = 8

   Width = 48

   Height = 13

   Caption = 'Значение 3:'

  end

  object Edit3: TEdit

   Left = 8

   Top = 24

   Width = 121

   Height = 20

   MaxLength = 10

   TabOrder = 0

   Text = '0'

  end

 end

end

{ ***   КОНЕЦ КОДА DDEDLG.DFM *** }

{ *** НАЧАЛО КОДА DDEDLG.PAS *** }

{***************************************************}

{                                                   }

{   Delphi 1.0 DDEML Демонстрационная программа     }

{   Copyright (c) 1996 by Borland International     }

{                                                   }

{***************************************************}

{ Данный модуль определяет интерфейс сервера DataEntry DDE

(DDEMLSRV.PAS). Здесь определены имена Service, Topic,и Item, поддерживаемые сервером, и также определенаструктура данных, которая может использоватьсяклиентом для локального хранения "показательных" данных.

Сервер Data Entry Server делает свои "показательные"данные доступными в текстовом виде (cf_Text)сформированными в виде трех различных топика (Topics).Клиент может их преобразовывать в целое дляиспользования со структурой данных, которая здесь определена.}

unit Ddedlg;

interface

uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Buttons, StdCtrls, Mask, ExtCtrls;

type TDataEntry = class(TForm)

 OKBtn: TBitBtn;

 CancelBtn: TBitBtn;

 Bevel1: TBevel;

 Panel2: TPanel;

 Label1: TLabel;

 Label2: TLabel;

 Panel1: TPanel;

 Label4: TLabel;

 Panel3: TPanel;

 Label6: TLabel;

 Edit1: TEdit;

 Edit2: TEdit;

 Edit3: TEdit;

 procedure OKBtnClick(Sender: TObject);

 procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

S1, S2, S3: String;

 { Public declarations }

end;

var DataEntry: TDataEntry;

implementation

{$R *.DFM}

procedure TDataEntry.OKBtnClick(Sender: TObject);

begin

 S1 := Edit1.Text;

 S2 := Edit2.Text;

 S3 := Edit3.Text;

end;

procedure TDataEntry.FormShow(Sender: TObject);

begin

 Edit1.Text := '0';

 Edit2.Text := '0';

 Edit3.Text := '0';

 Edit1.SetFocus;

end;

end.

{ ***  КОНЕЦ КОДА DDEDLG.PAS *** } 

Как добавить группу в Program Manager?

Delphi 1 

interface

procedure CreateGroup;

implementation

procedure TSetupForm.CreateGroup;

{ Для установки группы в Program Manager используем компонент TProgMan }

var

 ItemList: TStringList;

 GroupName: String;

 ItemName: String;

 i: word;

begin

 { Получаем из INI-файла строку GroupName }

 GroupName := IniFile.ReadString('General', 'PMGroup', '');

 { Если один есть, устанавливаем группу }

 if GroupName <> '' then begin

  ItemList := TStringList.Create;

  try

   { читаем элементы для установки }

   IniFile.ReadSectionValues('PMGroup', ItemList);

   with TProgMan.Create(Self) do try

    CreateGroup(GroupName);

    for i := 0 to ItemList.Count  – 1 do begin

     { получаем имя файла }

     ItemName := Copy(ItemList.Strings[i], 1, Pos('=', ItemList.Strings[i]) – 1);

     { прибавляем путь к имени файла и добавляем элемент }

     AddItem(GetTarget(ItemList.Values[ItemName][1]) + ItemName, ItemName);

    end;

   finally

    Free;

   end;

  finally

   ItemList.Free;

  end;

 end;

end

OLE 

OLE-автоматизация в Delphi 1

Delphi 1 

Delphi 16 также может осуществлять автоматизацию OLE, как она может и многое другое. Другое дело, что у нее нет компонентов-инкапсуляторов, и нет традиционных объектов, делающих работу с OLE такой же легкой, как это происходит с другими вещами в Delphi. Delphi32 таки должен иметь какие-то характеристики для работы с OLE (я так надеюсь).

Так, если вы собираетесь делать какие-то действия с любым типом OLE-сервера, то для этого вам необходимо будет использовать все нудные и противные рутинки из набора Windows SDK. Но будет лучше, если всем этим будет заправлять специализированный компонент. Но этот вопрос уже не к Borland. 

OLE сервер

Delphi 1 

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

unit Unit1;

interface

function OLEfunction(x, y, z: integer): integer; cdecl; export;

implementation

function OLEfunction(x, y, z: integer): integer;

begin

end;

procedure buildOLEstructure;

var F: pointer;

begin

 F := @OLEfunction; { Компилируется без проблем … }

end;

end.

Используйте метод, приведенный ниже. Вы должны объявить одну вызывающую функцию к каждой комбинации параметров, которые вы собираетесь передавать. Затем вы вызываете вызывающую функцию (сорри) и передаете ей как указатель функцию, которую вы хотите вызвать (еще раз сорри). Непонятно? Поясню на примере:

library pcdecl;

function olefunction(a1: pchar; a2: longint; x: integer): integer; cdecl; export;

begin

end;

function callolefunction(func: pointer; a1: pchar; a2: longint; x: integer): integer; assembler;

asm

 push x { помещаем параметры в обратном порядке }

1 ... 102 103 104 105 106 107 108 109 110 ... 123
На этой странице вы можете бесплатно читать книгу Советы по Delphi. Версия 1.4.3 от 1.1.2001 - Валентин Озеров бесплатно.

Оставить комментарий

Рейтинговые книги