Читаем Советы по Delphi. Версия 1.4.3 от 1.1.2001 полностью

 GetMem(Output, Size);

 input := Inbuf;

 Orig := Output;

 while input^ <> #0 do begin

  if (input^ <> #10) and (input^ <> #13) then begin

output^ := input^;

   inc(output);

  end;

  inc(input);

 end;

 Output^ := #0;

 Output := Orig;

 InBuf := Output;

end;

Я все еще немало удивлен тому как работает GetData! Я все еще не хочу использовать TMemo! Если кто-то может решить эту проблему, я буду очень рад! Пока же я готовлю для вас материал, включающий новые процедуры печати! Наведем порядок в беспорядке! Я уже имею реализацию вывода текста с любым шрифтом и в любой позиции, выраженной в дюймах, и это только начало! Но что я думаю действительно классно вышло, так это диманическая сетка! Вы можете создавать сетку с любым количеством строк и колонок. Назначьте текст и ячейку, установите горизонтальное и вертикальное выравнивание, выберите стиль границы для каждой ячейки и изучите множество других способов манипулирования и печати сетки!

<p>Функция, возвращающая тип</p>

Delphi 1

Вы можете сделать это в C++. В ObjectPascal это также можно сделать, смотрите пример:

// функция Chameleon, возвращающая тип сгенерированного исключения

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls;

type

 MyBoolean = class

 public

  Value : boolean;

 end;

 MyInteger = class

 public

  Value : integer;

 end;

 MyClass = class

 public

  Value : TStrings;

 end;

 TForm1 = class(TForm)

  Button1: TButton;

  procedure Button1Click(Sender: TObject);

 private { Private declarations }

 public { Public declarations }

  procedure MyProc;

  function Chameleon : boolean;

 end;

var

 Form1: TForm1;

implementation

{$R *.DFM}

function TForm1.Chameleon : boolean;

var

 b : MyBoolean;

 i : MyInteger;

 c : MyClass;

 r : integer;

begin

 r := Random(3);

 case r of

 0 : begin

  b := MyBoolean.Create;

  raise b;

 end;

 1 : begin

  i := MyInteger.Create;

  raise i;

 end;

 2 : begin

  c := MyClass.Create;

  raise c;

 end;

 end;

end;

procedure TForm1.MyProc;

begin

 try

  Chameleon;

 excepton MyBoolean do ShowMessage('Функция возвратила класс MyBoolean');

 on MyInteger do ShowMessage('Функция возвратила класс MyInteger');

 on MyClass do ShowMessage('Функция возвратила класс MyClass');

 end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 Chameleon;

end;

end.

Взгляните на тип данных Variant в D2: следующий код

function AnyType(const TypeParm: integer): Variant;

begin

 case TypeParm of

1: Result := 1;

 2: Result := 2.0;

 3: Result := 'Три';

 4: Result := StrToDate('4/4/1944');

 end;

end;

абсолютно бестолковый, но полностью корректный!

Следующий код содержит объявление трех функций, принимающих на входе один и тот же параметр, но выдающих результаты различных типов (результат физичиски один и тот же, и занимает он 4 байта). Я не думаю, что можно одурачить delphi, чтобы с помощью этого метода возвратить строку. Это может привести к разрушению менеджера кучи. Вместо этого вызывайте необходимую вам функцию. Каждый вызов передается MyFuncRetAnything, а P1 определяет возвращаемый тип. Если хотите, можете написать другую обертку, делающую для вас еще и приведение типов.

3 вызова, 1 код.

Я понимаю, что это в действительности не то, что нужно, по я просто хотел продемонстрировать другой способ. (вы можете возвращать строки как тип PChar, который также занимает 4 байта). Вы должны использовать некоторую память, распределяемую вызовом процедуры (может быть передавать результаты как P2?).

{моя форма имеет 3 метки, одну кнопку и этот код}

var

 MyFuncRetInt : Function(P1, P2 : Integer) : Integer;

Перейти на страницу:

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

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT