Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Text in ein DBRichEdit einfügen per SendMessage()

  Alt 1. Feb 2021, 20:55
@himitsu,
dank dir für deine Mühe!
Ich habe deine Tipps auch probiert, aber selbes Ergebnis: Die Showmessage wird aufgerufen und zeigt das richtige Handle an, aber im DBRichEdit der Fremdanwendung passiert absolut nichts.
Das DBRichEdit im Fremdprogramm hat immer den Fokus (Cursor blinkt im DBRichEdit), jeweils einmal im Editiermodus getestet und einmal ohne.

Wie kann ich denn in einem Fremdprogramm
Zitat:
RichEdit.SelText :=
setzen?


Hier mal einer meiner Tests:

Delphi-Quellcode:
PROCEDURE Tfrm_Main.WMHotKey( VAR Msg: TWMHotKey );
VAR
  s: STRING;
  copyDataStruct: TCopyDataStruct;
BEGIN
  gc_my_DBRichEdit_Handle := Handle_DBRichEdit_ermitteln { Return Handle-ID };
  TRY
    IF ( Msg.HotKey = Hotkey_id ) AND ( gc_my_DBRichEdit_Handle > 0 ) THEN
    BEGIN
      s := 'Das ist ein Test';
      copyDataStruct.cbData := 1 + ( Length( s ) * SizeOf( Char ) ); // !!!
      copyDataStruct.lpData := PChar( s );

      Keybd_Event( VK_RETURN, 0, 0, 0 ); // Taste drücken
      Keybd_Event( VK_RETURN, 0, KEYEVENTF_KEYUP, 0 ); // Taste loslassen

      SendMessage( gc_my_DBRichEdit_Handle, EM_REPLACESEL, 0, LPARAM( @copyDataStruct ) );
      Sleep( 2000 );

      ShowMessage( s + ' Handle-ID=' + IntToStr( gc_my_DBRichEdit_Handle ) );
    END;
  FINALLY
    // gc_my_DBRichEdit_Handle := 0; { TODO 2 -oJS -cnoch zu erledigen : Nach den Tests ist das zu aktivieren, damit die Variable nach jedem Aufruf auch initialisiert ist }
  END;
END;
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat