ich eine benutzerdefinierte Komponente des Typs TSpeedButton haben, die zwei zusätzliche Eigenschaften definiert:Delphi 2009: Pass Komponentenname Onclick-Ereignis dann gesetzt Eigenschaft
CommentHeading: string;
CommentText: string;
ich bei Entwurfszeit festgelegt CommentHeading.
Wenn die Geschwindigkeitstaste gedrückt wird, wird ein Memo mit einer Taste darunter angezeigt, um den Inhalt zu speichern. Das Verfahren, das diese Griffe:
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;
Und das ViewComments Verfahren selbst:
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;
Der Inhalt des Memos müssen die Eigenschaft Comment des benutzerdefinierten Speedbutton zugewiesen werden.
Was ich zuerst dachte war, dass ich den Komponentennamen an eine Variable übergeben könnte, wenn der benutzerdefinierte SpeedButton gedrückt wird und dann diesen Namen abrufen, wenn die Schaltfläche zum Speichern auf dem Memo gedrückt wird und verwenden Sie es den Memotext zuweisen speedbuttons CommentText Eigenschaft. Aber dann erkannte ich, dass ich dafür eine Art von Fall verwenden müsste ... eine Anweisung, die nach jedem möglichen Speedbutton-Namen sucht und dann den Memo-Wert seinen Eigenschaften zuweist, und das erscheint nur lächerlich langwierig.
Gibt es eine einfachere Möglichkeit, den Memotext der Speedbutton zuzuordnen, mit der das Memo gestartet wurde?
Rob, du bist ein Delphi GOTT !!! Das ist genau die Information, nach der ich gesucht habe! Und Mason, wenn du das liest, entschuldige ich mich dafür, dass ich nicht das erste Mal verstanden habe, was ich meine, aber ich habe Delphi erst im letzten Monat wieder aufgegriffen, nachdem ich seit 2002 weg war, also versuche ich immer noch an all das zu denken Konzepte, Tricks, etc. Rob, schätzen Sie Ihre Notiz über die Benennung der Etiketten - das bestimmte Etikett war nur ein schnell platzierter "Hack", um dem Benutzer zu zeigen, dass sie sich tatsächlich im Bearbeitungsmodus befanden. Vor der Kompilierung stelle ich die Labels immer entsprechend ihrer tatsächlichen Verwendung ein. – Rafe