Читаем Советы по 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. 

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

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; 

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

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;

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

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

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

Delphi 1 

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

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

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT