AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WndProc beim Richedit

Ein Thema von Prototypjack · begonnen am 20. Mär 2008 · letzter Beitrag vom 20. Mär 2008
Antwort Antwort
Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#1

WndProc beim Richedit

  Alt 20. Mär 2008, 15:12
Moin,

Ich habe mal wieder ein Problem

Ich versuche die WM_Paste Message bei einem Richedit abzufangen um dann dort etwaige Zeichen (Zeilenumbrüche in diesem Fall und gesonderte Textformatierungen) zu entfernen und den Text dann "per Hand" einzufügen.

Nur habe ich ein Problem: Die WM_PASTE Message wird scheinbar niemals geschickt?

In dem Code kann ich keinen Fehler entdecken und der Hook funktioniert auch (Breakpoints auf alle anderen Messages, die an die alte WndProc gehen, werden erfolgreich weitergeleitet).

Hook:
Delphi-Quellcode:
procedure TFrmAddEntry.NewLang2WndProc(var Message: TMessage);
var
  lHandle: THandle;
  lText: WideString;
begin
  if Message.Msg = WM_PASTE then
  begin
    if IsClipboardFormatAvailable(CF_UNICODETEXT) then
    begin
      OpenClipBoard(redtLanguage2.Handle);
      try
        lHandle := GetClipboardData(CF_UNICODETEXT);
        if lHandle <> 0 then
        begin
          lText := WideString(GlobalLock(lHandle));
          GlobalUnlock(lHandle);

          lText := Tnt_WideStringReplace(lText, #13, '', [rfReplaceAll]);
          lText := Tnt_WideStringReplace(lText, #10, '', [rfReplaceAll]);

          redtLanguage2.SelText := '';
        end;
      finally
        CloseClipBoard;
      end;
    end;
  end
  else
  begin
    OldLang2WndProc(Message);
  end;
end;
Hook-Setzen (im OnCreate der Form)
Delphi-Quellcode:
  OldLang2WndProc := redtLanguage2.WindowProc;
  redtLanguage2.WindowProc := NewLang2WndProc;
Wie kann das sein? Verhält sich das Richedit hier anders?

Weder MSDN noch DP-Suche konnten mir wirklich weiterhelfen.

Danke & Grüße,
Max
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: WndProc beim Richedit

  Alt 20. Mär 2008, 15:41
Hallo,

Schau dir mal meinen Beitrag von hier an.
Thomas
  Mit Zitat antworten Zitat
Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#3

Re: WndProc beim Richedit

  Alt 20. Mär 2008, 19:14
Moin,

Sehr schön, hat perfekt funktioniert.

Danke!

Grüße,
Max
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz