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.

Werbung

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

Angebote bei Acer
» Großer Acer Herbst Sale:Bis zu 200 Euro Rabatt auf viele Acer Notebooks, Convertibles, Gaming Notebooks und PC, Monitore und mehr bei den Acer Herbst Angeboten bis 02.10.2018


Angebote bei HP
» HP Back To School 2018: Viele HP Notebooks, Convertibles und Drucker im Angebot


Angebote bei Lenovo
» Lenovo Top Wochenangebote: Heiße ThinkPad und IdeaPad Wochenangebote mit großer Auswahl und dicken Rabatten


Weitere Möglichkeiten
» Top bei Otto: Sehr gute HP Notebook Angebote, teils mit Extras wie 4 Jahre Garantie und mehr
» Mehr Aktionen in der Übersicht: Aktuelle HP Angebote und mehr auf einem Blick


Aktuelle Bitdefender Aktionen:
» Top Angebot: Bitdefender "The Darkest Minds Promotion" mit kostenlosem Gewinnspiel und Angebot Total Security 2019 MultiDevice nur 39,99€ statt 79,99 Euro (50% Rabatt)
» Bitdefender Sommer-Aktion Version 2019 mit 15 Euro Rabatt auf Bitdefender Antivirus Plus 2019 (3 Geräte und 1 Jahr), 30 Euro Rabatt auf Bitdefender Internet Security 2019 (3 Geräte und 1 Jahr) und 40 Euro Rabatt auf Bitdefender Total Security Multi Device 2019 (5 Geräte und 1 Jahr)
» Bitdefender +1 Jahr dazu-Aktion
» Top für neue PCs! Bitdefender AntiVirus Plus Lebenslang Edition: 5 Jahre Schutz für nur für nur 89,95
Weitere aktuelle Bitdefender Angebote » Alle Bitdefender Angebote auf einem Blick

Werbung
Bitdefender: 40% Rabatt auf die neue Total Security 2019

Verwandte Themen:


Sorry! Unser Kommentarfunktion ist vorübergehend geschlossen.