Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Определить и выставить значение текстового свойства

Delphi , Компоненты и Классы , Свойства и События

Определить и выставить значение текстового свойства



unit StrForm;

interface

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

type
  TForm1 = class(TForm)
    ButtonGet: TButton;
    EditProperty: TEdit;
    Label1: TLabel;
    Bevel1: TBevel;
    ButtonTrial: TButton;
    Label2: TLabel;
    LabelResult: TLabel;
    ButtonSet: TButton;
    Label3: TLabel;
    EditValue: TEdit;
    procedure ButtonGetClick(Sender: TObject);
    procedure ButtonSetClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

uses
  TypInfo;

procedure TForm1.ButtonGetClick(Sender: TObject);
var
  PropInfo: PPropInfo;
begin
  if not Assigned (ButtonTrial) then
    ShowMessage ('The button has been renamed')
  else
  begin
    PropInfo := GetPropInfo (
      ButtonTrial.ClassInfo, EditProperty.Text);
    if PropInfo <> nil then
      if PropInfo^.PropType^.Kind =
          tkLString then
        LabelResult.Caption :=
          GetStrProp (ButtonTrial, PropInfo)
      else
        ShowMessage ('Not a string property')
    else
      ShowMessage ('Property doesn''t exist');
  end;
end;

procedure TForm1.ButtonSetClick(Sender: TObject);
var
  PropInfo: PPropInfo;
begin
  if not Assigned (ButtonTrial) then
    ShowMessage ('The button has been renamed')
  else
  begin
    PropInfo := GetPropInfo (
      ButtonTrial.ClassInfo, EditProperty.Text);
    if PropInfo <> nil then
      if PropInfo^.PropType^.Kind =
          tkLString then
        SetStrProp (ButtonTrial, PropInfo, EditValue.Text)
      else
        ShowMessage ('Not a string property')
    else
      ShowMessage ('Property doesn''t exist');
  end;
end;

end.

Загрузить весь проект

Этот проект на языке Delphi демонстрирует, как динамически получать и устанавливать значение текстовой свойства компонента в реальном времени.

Форма имеет несколько компонентов:

  1. ButtonGet: при клике на него он получает значение указанного текстового свойства ButtonTrial и отображает его в LabelResult.
  2. ButtonSet: при клике на него он устанавливает значение указанного текстового свойства ButtonTrial в текст, введенный в EditValue.

Работа проекта происходит следующим образом:

  1. В процедуре ButtonGetClick код получает структуру PropInfo для указанного текстового свойства с помощью функции GetPropInfo. Если свойство существует и имеет тип tkLString (локализованная строка), код использует функцию GetStrProp, чтобы получить его значение, которое затем отображается в LabelResult.
  2. В процедуре ButtonSetClick код получает структуру PropInfo для указанного текстового свойства с помощью функции GetPropInfo. Если свойство существует и имеет тип tkLString, код использует функцию SetStrProp, чтобы установить его значение в текст, введенный в EditValue.

Обратите внимание, что код предполагает, что у ButtonTrial есть свойство с именем, указанным в EditProperty.Text. Если такого свойства не существует, он отображает сообщение об ошибке.

Проект использует.unit TypInfo, чтобы получать информацию о свойствах в реальном времени. Функция GetPropInfo возвращает структуру PPropInfo, содержащую информацию о указанном свойстве, включая его тип и значение. Функция SetStrProp устанавливает значение строкового свойства.

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

Определение и установка значения текстового свойства в программе на языке Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Свойства и События ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:17:19/0.0055341720581055/1