![]() |
RichEdit-Fragen
Hi!
Ich hab hier einige Fragen zur Richedit-Komponente... Ich möchte den Text auch als .txt- Datei speichen und zwar ohne diesen blöden Richtext-Formatierungscode - hat jemand ne Idee wie ich das behen kann? So, und hier die zweite Frage: Ich möchte dass Links blau unterlegt werden und auch als solche erkannt werden - wie geht sowas? Ich meine, man sollte draufklicken können... Danke schonmal! =) Lamy |
Re: RichEdit-Fragen
Zitat:
Delphi-Quellcode:
with RichEdit1.Lines, TMemoryStream.Create do
try WriteBuffer(Text[1], Length(Text)); SaveToFile('foo.txt'); finally Free; end; Zitat:
Delphi-Quellcode:
(auf das Klicken zu reagieren ist etwas aufwendiger, such nach WM_NOTIFY und EN_LINK...)
with RichEdit1 do
RichEdit1.Perform(EM_AUTOURLDETECT, Ord(True), 0); |
Re: RichEdit-Fragen
Zur zweiten Frage:
Das Problem hatte ich auch schon, Schau dir mal ![]() |
Re: RichEdit-Fragen
Du kannst, um die Richedit-Formatierungsinformationen wegzukriegen, die Eigenschaft PlainText im OI umstellen :zwinker:
|
Re: RichEdit-Fragen
Vielen Dank, das erste funktioniert schon, danke NicoDE :mrgreen:!
aber mit dem 2. hab ich noch Probleme: Jfheins, ich glaub der Link hilft mir nicht weiter, er zeigt doch nur wie man mit dem RichEditfeld scrollen kann...? EM_AUTOURLDETECT kennt er nicht, "undefinierter Bezeichner"... |
Re: RichEdit-Fragen
Zitat:
Delphi-Quellcode:
uses
RichEdit; |
Re: RichEdit-Fragen
Ah ja, danke!
Allerdings reagiert er - wie du bereits gesagt hast - nicht auf Klicks aber ich werd mal nach EN_Link und WM_Notify suchen... //EDIT: Also, EN_Link ergibt nix, WM_Notify nur in sämtlichen Threads irgendein fachsimplerisches Gebrabbel was mir ungefähr... gar nix sagt :roll: Werd mal nach googlen... |
Re: RichEdit-Fragen
So, hab hier mal was gefunden:
![]() Aber wie und wo binde ich nun den 2. Code ein? *nixmehrdavonkapiert* |
Re: RichEdit-Fragen
Schau dir den thread nochmal genau an.
Dann findest du min. zwei Links. Davon ist der eine: ![]() |
Re: RichEdit-Fragen
Ah ja, alles klar, danke!
Lamy |
Re: RichEdit-Fragen
Zu zweitens...
Delphi-Quellcode:
[edit] das kommt davon, wann man vor dem Abschicken des Beitrags noch schnell was essen geht *g* [/edit]
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Controls, Forms, StdCtrls, ComCtrls; type TForm1 = class(TForm) RichEdit1: TRichEdit; procedure FormCreate(Sender: TObject); private { Private declarations } procedure WmNotify(var Message: TWMNotify); message WM_NOTIFY; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses RichEdit, ShellAPI; procedure TForm1.WmNotify(var Message: TWMNotify); type PENLink = ^TENLink; TTextRange = TTextRangeA; var Link: string; Text: TTextRange; begin inherited; with Message do if (Result = Ord(False)) and Assigned(NMHdr) and (NMHdr.code = EN_LINK) then with PENLink(NMHdr)^ do if msg = WM_LBUTTONDOWN then begin SetLength(Link, chrg.cpMax - chrg.cpMin + 1); Link[1] := #0; Text.chrg := chrg; Text.lpstrText := PChar(Link); SendMessage(NMHdr.hwndFrom, EM_GETTEXTRANGE, 0, Integer(Addr(Text))); if StrLen(PChar(Link)) > 0 then begin ShellExecute(Handle, 'open', PChar(Link), nil, nil, SW_SHOWDEFAULT); Result := Ord(True); end; end; end; procedure TForm1.FormCreate(Sender: TObject); begin with RichEdit1 do begin Perform(EM_AUTOURLDETECT, Ord(True), 0); Perform(EM_SETEVENTMASK, 0, Perform(EM_GETEVENTMASK, 0, 0) or ENM_LINK); end; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz