AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie Caretposition in RichEdit setzen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Caretposition in RichEdit setzen?

Ein Thema von Armageddon · begonnen am 25. Aug 2005 · letzter Beitrag vom 29. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#1

Wie Caretposition in RichEdit setzen?

  Alt 25. Aug 2005, 21:45
Hallo,

habe mit folgendem Code aus einem fremden RichEdit die Caretposition herausbekommen:

Delphi-Quellcode:
//RichEdit1 füllen
//Caretposition vom ersten Fenster speichern
  SendMessage(StrToInt(Fenster1_Handle), EM_GETSEL, wParam(@lCol), 0);
  lLine := SendMessage(StrToInt(Fenster1_Handle), EM_LINEFROMCHAR, lCol, 0);
  lCol := lCol - SendMessage(StrToInt(Fenster1_Handle), EM_LINEINDEX, -1, 0);
//Inhalt des ersten Fensters kopieren
  SendMessage(StrToInt(Fenster1_Handle), EM_SETSEL, 0, -1);
  SendMessage(StrToInt(Fenster1_Handle), WM_COPY, 0, 0);
  SendMessage(StrToInt(Fenster1_Handle), EM_SETSEL, 0, 0);
  RichEdit1.ReadOnly := False;
  RichEdit1.PasteFromClipboard;
  RichEdit1.ReadOnly := True;
So weit so gut. Nun habe ich ja zum Schluß den Text den ich kopiert habe in meinem RichEdit eingefügt. Möchte nun aber in meinem RichEdit den Caret genau an die gleiche Position setzen wie er in dem fremden RichEdit vor dem kopieren war. Ebenfalls möchte ich den Caret des fremden RichEdit wieder an seine ursprüngliche Position setzen. Wie kann ich die beiden Werte für die Linie und die Spalte für mein Vorhaben verwenden?

Gruß Markus
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#2

Re: Wie Caretposition in RichEdit setzen?

  Alt 25. Aug 2005, 22:22
Delphi-Referenz durchsuchenTRichEdot.CaretPos

Falls es das noch nicht geben sollte:

Delphi-Referenz durchsuchenTRichEdit.SelStart

//Nachtrag: Warum machst du das ganze so umständlich? CaretPos tuts doch auch. Außerdem: Warum nimmst du die Zwischenablage? Der User wirds dir danken, wenn sein Clipboard-Inhalt weg is. Besser:
RichEdit2.Lines.Assign(RichEdit1.Lines); mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#3

Re: Wie Caretposition in RichEdit setzen?

  Alt 26. Aug 2005, 01:52
Zufälliger Weise ist der Text in einem RichEdit einer Fremden Anwendung und das geht soviel ich weiß nur über das Handle mittels SendMessage oder hab ich da was falsch verstanden?
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#4

Re: Wie Caretposition in RichEdit setzen?

  Alt 26. Aug 2005, 09:26
Zitat von Armageddon:
Zufälliger Weise ist der Text in einem RichEdit einer Fremden Anwendung und das geht soviel ich weiß nur über das Handle mittels SendMessage oder hab ich da was falsch verstanden?
Sorry, dann hab ich dich falsch verstanden. Den Text bekommt man aber AFAIK auch ohne das Clipdoard und zwar über GetText oder so ähnlich. Wie das mit dem Caret dann aussieht, hab ich dann leider auch keine Ahnung. Ich hätte deinen Post wohl besser lesen sollen. Mist! PISA hat doch Recht...

mfg

Christian

P.S.: Alle Angaben sind wie immer ohne Gewähr...
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Wie Caretposition in RichEdit setzen?

  Alt 26. Aug 2005, 09:53
Zitat von Armageddon:
Zufälliger Weise ist der Text in einem RichEdit einer Fremden Anwendung und das geht soviel ich weiß nur über das Handle mittels SendMessage oder hab ich da was falsch verstanden?
Jupp, aber kein Grund die Zwischenablage zu benutzen, mit WM_GETTEXT bekommst du den Inhalt des RichEdits.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Wie Caretposition in RichEdit setzen?

  Alt 26. Aug 2005, 09:56
Hallo,

warum setzt Du nicht mitSendMessage(Handle, EM_SETSEL, Alte_Position, Alte_Position); Dein Caret zurück?

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#7

Re: Wie Caretposition in RichEdit setzen?

  Alt 26. Aug 2005, 14:37
Hi allerseits,

@r2c2: Kein Problem ist mir auch schon des öfteren passiert.

@Luckie: Hmmm das muß ich mal ausprobieren. Ich hoffe ich bekomme so auch die Formatierungen wie Schriftfarbe usw. auch mitgeliefert.

@xaromz: Danke für den Tipp. Da bin ich Heute Mittag als ich mal nicht viel zu tun hatte beim Arbeiten durch herumprobieren auch draufgekommen. Trotzdem Danke.

Jetzt fehlt nur noch das der RichEdit-Inhalt des fremden RichEdit nach dem markieren und Kopieren wieder an genau die gleiche Stelle gescrollt wird so das nicht auffällt das jemals was passiert ist. Daran happert es bis jetzt noch. Hat evtl. jemand da noch nen Tipp?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Wie Caretposition in RichEdit setzen?

  Alt 26. Aug 2005, 14:38
nein, da musst du über den Stream gehen. Code dazu hat Nico hier im Forum schon mal gepostet.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: Wie Caretposition in RichEdit setzen?

  Alt 26. Aug 2005, 14:46
Suche mal nach EM_STREAMIN bzw. EM_STREAMOUT hier im Forum. Darüber kommst du an den Inhalt des Richedit ohne die Markierung oder die Zwischenablage zu verändern.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#10

Re: Wie Caretposition in RichEdit setzen?

  Alt 27. Aug 2005, 20:52
Das mit dem Stream wäre natürlich die beste Lösung. Habe mir auch schon einige Programmcodes dazu angesehen aber komme damit einfach nicht klar. Auch beim Swissdelphicenter hab ich schon geschaut und was ausprobiert aber außer ein dutzend Fehlermeldungen geht da auch nix. Es kann doch nicht so schwer sein den kompletten Inhalt heraus zu streamen. Oder etwa doch? Kann mir da jemand mal nen kleinen Beispielcode geben?

@Lucky: Wenn ich nach dem Namen Nico suche finde ich leider nix. Bin leider nicht so oft hier das ich auf anhieb weiß wen Du damit genau meinst.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:12 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