掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
計算式を文字列に表記する方法 (ID:10658)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
しまった。何となくわかってしまった--; こーいうことでないの? 動作検証目的意外にそのまま使うべからず。 #使っても良いけど、無駄多いし、TAとかTDとかTAってrecordで十分とか #メモリ解放とか...もろもろの事ね。 ----- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TA = class private FStr: String; FValue: String; public property Str: String read FStr write FStr; property Value: String read FValue write FValue; end; TD = class private FList: TList; public constructor Create; destructor Destroy; override; procedure Add(Value: TA); function Execute(Str: String): String; end; TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Edit3: TEdit; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private 宣言 } FD: TD; public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} { TD } procedure TD.Add(Value: TA); begin FList.Add(Value); end; constructor TD.Create; begin FList := TList.Create; end; destructor TD.Destroy; Var I: Integer; begin for I:=0 to FList.Count -1 do TA(FList.Items[I]).Free; FList.Free; inherited; end; function TD.Execute(Str: String): String; Var I: Integer; begin result := Str; for I:=0 to FList.Count -1 do result := StringReplace(result, TA(FList.Items[I]).Str, TA(FList.Items[I]).Value, [rfReplaceAll]); end; { TForm1 } procedure TForm1.Button1Click(Sender: TObject); Var A: TA; begin A := TA.Create; A.Str := Edit1.Text; A.Value := Edit2.Text; FD.Add(A); end; procedure TForm1.FormCreate(Sender: TObject); begin FD := TD.Create; end; procedure TForm1.FormDestroy(Sender: TObject); begin FD.Free; end; procedure TForm1.Button2Click(Sender: TObject); begin form1.Caption := FD.Execute(Edit3.Text); end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.