Валентин Озеров - Советы по 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», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

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

Интервал:

Закладка:

Сделать

usesDialogs;

functionProc1(var MyVal : LongInt) : LongInt;

begin

MessageDlg('Процедура 1', mtInformation, [mbOK], 0);

Proc1 := 6;

end;

functionProc2( varMyVal : LongInt) : LongInt;

begin

MessageDlg('Процедура 2', mtInformation, [mbOK], 0);

Proc2 := 3;

end;

functionProc3( varMyVal : LongInt) : LongInt;

begin

MessageDlg('Процедура 3', mtInformation, [mbOK], 0);

Proc3 := 4;

end;

functionProc4( varMyVal : LongInt) : LongInt;

begin

MessageDlg('Процедура 4', mtInformation, [mbOK], 0);

Proc4 := 5;

end;

functionProc5( varMyVal : LongInt) : LongInt;

begin

MessageDlg('Процедура 5', mtInformation, [mbOK], 0);

Proc5 := 1;

end;

initialization

{ инициализируем содержание массива указателей на функции }

@ProcTable[1] := @Proc1;

@ProcTable[2] := @Proc2;

@ProcTable[3] := @Proc3;

@ProcTable[4] := @Proc4;

@ProcTable[5] := @Proc5;

end.

Я думаю это можно сделать приблизительно так: объявите в каждой форме процедуры, обрабатывающие нажатие кнопки, типа процедуры CutButtonPressed(Sender:TObject) of Object; затем просто назначьте события кнопок OnClick этим процедурам при наступлении событий форм OnActivate. Этот способ соответствует концепции ОО-программирования, но если вам не нравится это, то вы все еще можете воспользоваться указателями функций, которая предоставляет Delphi.

Объявите базовый класс формы с объявлениями абстрактных функций для каждой функции, которую вы хотите вызывать из вашего toolbar. Затем наследуйте каждую вашу форму от базового класса формы и создайте определения этих функций.

Пример: (Здесь может встретиться пара синтаксических ошибок — я не компилил это)

type

TBaseForm = class(TForm)

public

procedureMethod1; virtual; abstract;

end;

type

TDerivedForm1= class(TBaseForm)

public

procedureMethod1; override;

end;

TDerivedForm2= class(TBaseForm)

public

procedureMethod1; override;

end;

procedure TDerivedForm1.Method1;

begin

end;

procedureTDerivedForm2.Method1;

begin

end;

{Для вызова функции из вашего toolbar, получите активную в настоящий момент форму и вызовите Method1}

procedureOnButtonClick;

var

AForm: TBaseForm;

begin

AForm := ActiveForm asTBaseForm;

AForm.Method1;

end

Указатель на функцию II

Delphi 1

Что лично я использую, чтобы вызвать какую-то функцию из DLL:

1. Объявите тип:

typeTYourDLLFunc = function(Parm1: TParm1; Parm2: TParm2): TParm3;

2. Объявите переменную этого типа:

var YourDllFunc: TYourDLLFunc;

3. Получаем дескриптор DLL:

DLLHandle := LoadLibrary('YourDLL.DLL');

Получаем адрес функции:

@YourDLLFunc := GetProcAddress(DLLHandle, 'YourDLLFuncName');

Для использования функции теперь используйте переменную YourDLLFunc, например:

Parm3 := YourDLLFunc(Parm1, Parm2);

Использование указателей на целое

Delphi 1

Сначала вы должны создать тип:

TypePinteger: ^Integer;

VarMyPtr: Pinteger;

Мне кажется, что в начале вы использовали плохой пример, имеет смысл использовать 32-битный указатель для 16-битной величины или распределять 10 байт для переменной.

Pascal позволяет вам использовать методы NEW и DISPOSE, которые автоматически распределяют и освобождают правильные размеры блока.

Например,

NEW(MyPtr) = GetMem(MyPtr, Sizeof(MyPtr)).

Возможно, вы захотите подсчитать количество целочесленных переменных. В этом случае ознакомьтесь с возможностями TList. Пока лучше используйте линейный массив (или указатель на первый элемент, чтобы вычислить их количество, достаточно разделить количество занимаемой массивом памяти на количество элементов).

Для полноты, это должно быть:

NEW(MyPtr) = GetMem(MyPtr, SizeOf(MyPtr^));

SizeOf(MyPtr) всегда будет равен 4 байта, как 16-битный указатель.

Если я правильно разобрался в том, что вы хотите (динамический массив целых, количество элеметнов которого может быть известно только во время выполнения приложения), вы можете сделать так:

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

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по 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