Events für Vor – und Nach Einfügen aus der Zwischenablage für TAdvMemo nachrüsten

Die AdvMemo – Komponenten von TMS Components sind äußerst leistungsfähig, mit weitaus mehr Funktionen ausgestattet als die Standard – Memo – Komponenten. Was Ihnen aber dennoch fehlt sind Events, die ausgelöst werden vor und nach dem Einfügen von Text aus der Zwischenablage. Dies kann aber ganz nützlich sein, besonders, wenn man wissen möchte, ob sich am Text etwas geändert hat, beispielsweise, wenn man einen Speicher-Button entsprechend aktivieren möchte. Glücklicherweise ist das Nachrüsten aber ganz einfach.

Neue abgeleitete Memo – Komponente

Folgende Unit erstellt einen Nachfolger von TdbAdvMemo und erweitert diese um die zwei Events OnVorEinfuegen und OnNachEinfuegen. Sie können auch andere Namen verwenden. Ich verwende aber gerne deutsche Namen, da man dann fast sicher ausschließen kann mit irgendwas in Konflikt zu geraten.

Das Beispiel verwendet TdbAdvMemo, wenn Sie das db weglassen, können Sie auch eine Erweiterung für die Nicht – DB – Komponente vornehmen. Und das Ganze geht natürlich auch mit der Standardmemo – Komponente von Delphi, dann leiten Sie eben von TMemo ab.

Legen Sie sich einfach ein neues Delphi – Package und fügen Sie dann eine neue Unit hinzu mit folgenden Code:

unit advdbmemoex;

interface

uses
ClipBrd, Windows, Messages, SysUtils, Classes, Controls, StdCtrls,advmemo,dbadvmemo;

type
TStringEvent = procedure(Sender: TObject; var s: String) of object;
TdbAdvMemoEx = class(TdbAdvMemo)
private
FOnVorEinfuegen: TStringEvent;
FOnNachEinfuegen: TNotifyEvent;
procedure WMPaste(var Message: TMessage); message WM_PASTE;
protected
public
published
property OnVorEinfuegen: TStringEvent read FOnVorEinfuegen write FOnVorEinfuegen;
property OnNachEinfuegen: TNotifyEvent read FOnNachEinfuegen write FOnNachEinfuegen;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents(‚MyComponents‘, [TdbAdvMemoEx]);
end;

procedure TdbAdvMemoEx.WMPaste(var Message: TMessage);
var
strClipText: String;
begin
// Prüfen, ob OnVorEinfuegen Event ist zugeordnet und ob die
//Zwischenablage Standardtext enthält
if Assigned(FOnVorEinfuegen) and Clipboard.HasFormat(CF_TEXT) then
begin
// Text aus Zwischenablage in Variable speichern
strClipText := ClipBoard.AsText;
// VorEinfuegen Event auslöseb
FOnVorEinfuegen(self, strClpText);

// Zwischenablage leeren und diese mit dem neuen Text ersetzen
Clipboard.Clear;
Clipboard.AsText := strClpText;
end;

Anschließend speichern, kompilieren und installieren, ab sofort finden Sie dann in Ihrer Delphi Palette neue erweiterte Memo – Komponente.

Ganz nach diesen Prinzip ist es natürlich auch möglich noch weitere Eigenschaften hinzuzufügen – Viel Spaß beim Programmieren.

Aktuelle Top Aktionen bei Acer, HP, Lenovo, Bitdefender & Co

Notebook & PC Angebote:
» HP Extra Aktion: 100 Euro Extra sparen bei HP Notebooks ab 999 Euro. Gutscheincode und alle Infos hier im HP Store
» Top bei Otto: Sehr gute HP Notebook Angebote mit Extras wie 4 Jahre Garantie und mehr
» Aktion im Lenovo Store: Bis zu 15% auf ausgewählte und recht gute Artikel (IdeaPad und Yoga Notebooks, Tablet PCs, Gaming Notebooks und PCs)
» Große Rabattaktion bei Acer: bis 21.05.2018 gibt es 15% Rabatt auf ultraschlanke Notebooks der Acer Swift Serie
» Notebooksbilliger.de WM Special:Jede Woche 11 neue Top Angebote>
» Mehr Aktionen in der Übersicht: Aktuelle HP Angebote und mehr auf einem Blick

Aktuelle Bitdefender Aktionen:
» Neue Aktion: Bitdefender 39 Euro Flat mit 5 Geräten
» Bitdefender +1 Jahr dazu-Aktion
» Die neue Bitdefender 40% und mehr Rabatt Aktion
» Top für neue PCs! Bitdefender Internet Security 2018 PC Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95

Weitere aktuelle Bitdefender Angebote » Alle Bitdefender Angebote auf einem Blick

Avira Antivirus - Ihr Virenschutz 2018

Verwandte Themen:


Sorry! Unser Kommentarfunktion ist vorübergehend geschlossen.