Показать сообщение отдельно
  #8  
Старый 06.01.2020, 04:00
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,036
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, простая реализация примерно такая (с учетои работы в Delphi 7):
Код:
unit Unit1;

interface

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

type
  TVariables = class
  private
    FItems : TStringList;
    FCaseSensitive : Boolean;
    function GetItem(VarName: String): String;
    procedure SetItem(VarName: String; const Value: String);
  public
    constructor Create;
    destructor Destroy; override;
    property Items[VarName : String] : String read GetItem write SetItem;
  end;

  TForm1 = class(TForm)
    edVarList: TMemo;
    btSet: TButton;
    edVarName: TEdit;
    edVarValue: TEdit;
    btGet: TButton;
    procedure btSetClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure btGetClick(Sender: TObject);
  private
    { Private declarations }
    V : TVariables;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TVariables }

constructor TVariables.Create;
begin
  inherited Create;
  FItems := TStringList.Create;
end;

destructor TVariables.Destroy;
begin
  FItems.Free;
  inherited;
end;

function TVariables.GetItem(VarName: String): String;
begin
  Result := FItems.Values[VarName];
end;

procedure TVariables.SetItem(VarName: String; const Value: String);
begin
  FITems.Values[VarName] := Value;
end;

procedure TForm1.btSetClick(Sender: TObject);
begin
  V.Items[edVarName.Text] := edVarValue.Text;
  edVarList.Lines.Text := V.FItems.Text;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  V := TVariables.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  V.Free;
end;

procedure TForm1.btGetClick(Sender: TObject);
begin
  edVarValue.Text := V.Items[edVarName.Text];
  edVarList.Lines.Text := V.FItems.Text;
end;

end.
Ответить с цитированием