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

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

Интервал:

Закладка:

Сделать

Type

pIntArr = ^IntArr;

IntArr = Array[1..1000] ofInteger;

Var

MyPtr : pIntArr;

Begin

GetMem(MyPtr, 10); { 10 = SizeOf(Integer) * 5 !!}

{ MyPtr[2]:=1; }

<<<< Заполняем массив >>>>

MyPtr[2]^:=1;

FreeMem(MyPtr,10);

End;

Технология похожа на ту, которуя Delphi использует при работе с pchar. Синтаксис очень похож:

typeintarray = array[0..20000] ofinteger;

procedureTForm1.Button1Click(Sender: TObject);

var

xptr: ^IntArray;

begin

GetMem(xptr, 10);

xptr^[idx] := 1; { где idx от 0 до 4, поскольку мы имеем 10 байте = 5 целых }

FreeMem(xptr, 10);

end;

Обратите внимание на то, в вам в действительности нет необходимости распределять массив для 20,000 элементов, но проверка диапазона Delphi не будет работать, если диапазон равен 20,000. (Предостережение будущим пользователям!)

Память

Функция MemAvail для Delphi2?

Delphi 2

В Delphi 1, для того, чтобы получить самый большой возможный участок памяти, мы могли использовать функцию MemAvail, существует ли эквивалент этой функции в Delphi 2?

Нет. Но чтобы получить аппроксимированную сумму доступной памяти, можно воспользоваться функцией API GlobalMemoryStatus (через поле dwAvailVirtual возвращаемой структуры TMemoryStatus).

Steve Schafer

Как работать с блоками памяти размером более 64K?

Nomadicсоветует:

Так можно помещать в один блок памяти записи из TList (TCollection):

imlementation

{ To use the value of AHIncr, use Ofs(AHIncr). }

procedureAHIncr; far; external'KERNEL' index114;

const

NEXT_SELECTOR: string[13] = 'NEXT_SELECTOR';

functionWriteData: THandle;

var

DataPtr: PChar;

i: Integer;

begin

Result := GlobalAlloc(GMEM_SHARE orGMEM_ZEROINIT, {pазмеp большого блока});

ifResult = 0 thenExit;

DataPtr := GlobalLock(Result);

{записываем кол-во эл-тов}

Inc(DataPtr, {pазмеp счетчика эл-тов})

fori := 0 to{некий}Count-1 do begin

ifLongInt(PtrRec(DataPtr).Ofs) + {pазмеp подблока} >l= $FFFF then begin

Move(NEXT_SELECTOR, DataPtr^, SizeOf(NEXT_SELECTOR)); {некая константа}

{ коppекция сегмента }

PtrRec(DataPtr).Seg := PtrRec(DataPtr).Seg + Ofs(AHIncr);

PtrRec(DataPtr).Ofs := $0;

end;

Inc(DataPtr, {pазмеp нового блока});

end; { for i }

GlobalUnlock(Result);

end;

procedureReadData(DataHdl: THandle);

var

DataPtr : PObjectCfgRec;

RecsCount: Integer;

i: Integer;

begin

ifDataHdl = 0 thenExit;

DataPtr := GlobalLock(DataHdl);

RecsCount := PInteger(DataPtr)^;

Inc(PInteger(DataPtr));

fori := 1 toRecsCount do begin

{ обpаботать данные }

Inc(DataPtr);

ifPString(DataPtr)^ = NEXT_SELECTOR then begin

PtrRec(DataPtr).Seg := PtrRec(DataPtr).Seg + Ofs(AHIncr);

PtrRec(DataPtr).Ofs := $0;

end;

end; { for i }

GlobalUnlock(DataHdl);

end;

События

Назначение обработчика события OnClick пункту меню, созданному во время выполнения программы

Delphi 1

Поскольку метод OnClick является свойством, то при динамическом создании элемента меню вы можете назначить имя метода обработчику OnClick:

theMenuitem.OnClick := TheOnClickHandler;

Затем, в обработчике OnClick, вы приводите sender к TMenuItem и читаете имя:

proceduretheform.TheOnClickHandler(Sender: TObject);

var

fName: String;

begin

fName := TMenuItem(Sender).name;

end;

События для компонентов, созданных во время работы программы I

Delphi 1

Вы должны вручную создать метод, который будет иметь тот же самый набор параметров, как и у события, которое вы хотите обработать. Затем вы должны вручную установить свойство OnXXX, чтобы она указывала на метод, который вы создали.

Пример:

TForm1 = class(TForm)

procedureFormCreate(Sender: TObject);

private

FMyButton: TButton;

protected

procedureButton1Click(Sender: TObject);

{Кодируем это вручную,для соответствия}

{структуреTNotifyEvent}

end;

procedureTForm1.FormCreate(Sender: TObject);

begin

FMyButton := TButton.Create;

{Здесь устанавливаем позицию, заголовок и все остальное}

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

Интервал:

Закладка:

Сделать

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