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

  SetOrdProp(SomeComponent, PropInfo, Ord(PropertyValue.Text[1]));

 tkEnumeration:

  SetOrdProp(SomeComponent, PropInfo, GetEnumValue(PropType, PropertyValue.Text));

 tkFloat:

  SetFloatProp(SomeComponent, PropInfo, StrToFloat(PropertyValue.Text));

 tkString:

  SetStrProp(SomeComponent, PropInfo, PropertyValue.Text);

 end;

end;

Вы также можете установить значения свойств Set, Class и Method, но это будет немного сложнее. Немного позже я объясню как это можно сделать.

Это все. Вы проведете время с большой пользой, изучая исходный код VCL, и удивляясь, когда вы все там увидите собственными глазами.

Это прекрасный способ, но он имеет потенциал для массового злоупотребления. Необходимо понимание других путей достижения этой цели и выбор соответствующей техники при создании своих проектов в Delphi. 

Как правильно создавать органы управления в runtime?

Nomadic советует:

Примерно таким образом (Описываем метод-обработчик события OnClick формы):

{ Example }

procedure TForm1.OnClick(ASender: TObject);

var btnTemp: TButton;

begin

 { Creating }

 btnTemp := TButton.Create(Self);

 { You can use 'with btnTemp do' operator below }

 { Inserting to Form }

 btnTemp.Parent := Self;

 { Initialization }

 btnTemp.Caption := 'I''m glad to see You';

 btnTemp.SetBounds(20, 20, 80, 20);

 { You must define this event handler named 'OnBtnTempClick' }

 btnTemp.OnClick := OnBtnTempClick;

 { Ready to show }

 btnTemp.Visible := true;

 { Done. }

end; 

Как создать клон (копию, достаточно близкую к оригиналу) произвольного компонента?

Nomadic советует:

{ Здесь процедyра CreateClone, которая креатит компоненту ОЧЕНЬ ПОХОЖУЮ на входную. С такими же значениями свойств. Присваивается все, кроме методов. }

function CreateClone(Src: TComponent): TComponent;

var F: TStream;

begin

 F := nil;

 try

  F := TMemoryStream.Create;

  F.WriteComponent(Src);

  RegisterClass(TComponentClass(Src.ClassType));

  F.Position := 0;

  Result := F.ReadComponent(nil);

 finally

  F.Free;

 end;

end;

Как заставить произвольный компонент реагировать на изменения в TDataSource?

Nomadic советует:

TFieldDataLink. За D2 не скажу, а в D1 в Help'е его нет, реализован в \DELPHI\SOURCE\VCL\DBTABLES.PAS.

type TMyForm = class(TForm)

 {…}

 Table1: TTable;

 DataSource1: TDataSource;

private

 FDL : TFieldDataLink;

 procedure RecChange(Sender: TObject);

public

 {...}

end;


procedure TMyForm.FormCreate(Sender: TObject);

begin

 FDL:=TFieldDataLink.Create;

 FDL.OnDataChange := RecChange;

 FDL.DataSource := DataSource1;

 FDL.FieldName := 'MyFieldName';

end;


procedure TTabEditDlg.FormDestroy(Sender: TObject);

begin

 FDL.Free;

end;


procedure TTabEditDlg.MasterChange(Sender: TObject);

begin

 {… тут реагируй на изменения …}

end;

За отслеживание различных событий, происходящих с TDataSource, в иерархии VCL отвечает класс TDataLink. TFieldDataLink – наследник, который выполняет маскирование событий, не относящихся к конкретному столбцу набора данных.

Если надо отслеживать изменения в любом столбце набора, используйте TDataLink. Если необходимо отслеживать события для некоторого подмножества строк набора данных, посмотрите на реализацию TGridDataLink

Доступ к другим компонентам из базового

Delphi 1 

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

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

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

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

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

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT