TSpeedButton 型のカスタム コンポーネントがあり、次の 2 つの追加プロパティが定義されています。
CommentHeading: string;
CommentText: string;
デザイン時に CommentHeading を設定します。
速度ボタンを押すと、メモが表示され、その下に内容を保存するためのボタンが表示されます。これを処理する手順:
procedure CustomSpeedButton1Click(Sender: TObject);
begin
Receiver := CustomSpeedButton1.Name; // possibly used to save the memo text back to this speedbuttons property after comments are submitted
ViewComments(CustomSpeedButton1.CommentTitle,CustomSpeedButton1.CommentText);
end;
ViewComments プロシージャ自体:
procedure ViewComments(comment_caption:string; comment_text:string);
begin
label15.Hide; // label showing editing in progress, hidden until user begins typing
Button1.Enabled := false; // the button for saving the memo text, hidden until user begins typing
CommentsBox.Visible := true; // pop up the comment box at the bottom of the form
CommentsBox.Caption := 'Comments: ' + comment_caption;
CommentsMemo.Text := comment_text; // if there are existing comments assign them to memo
end;
メモの内容は、カスタム SpeedButton の CommentText プロパティに割り当てる必要があります。
最初に考えていたのは、カスタム SpeedButton が押されたときにコンポーネント名を変数に渡し、メモの保存ボタンが押されたときにその名前を取得し、それを使用してメモ テキストを speedbuttons CommentText プロパティに割り当てることでした。しかし、これを行うには、考えられる各スピードボタン名をチェックし、そのプロパティにメモ値を割り当てるある種の case..of ステートメントを使用する必要があることに気付きました。
最初にメモを開いたスピードボタンにメモテキストを割り当てる簡単な方法はありますか?