RTF formatiert an Clipboard
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
RTF formatiert an Clipboard
Jahu.
Ich suche mir schon den ganzen Tag lang den Wolf. Ich will einen kompletten formatierten RTF-Text an die Zwischenablage übergeben und in ein RTF-Control (TX Text Control) einfügen. Wenn ich das standardmäßig - oClipBoard:SetBuffer(cRtfText) - mache, landet natürlich der gesamte Text mit Formatierungsanweisungen dort. Also muss ich der Zwischenablage beim SetBuffer() über den zweiten Parameter sagen, dass es sich um RTF handelt. Mit RegisterFormat('RTF') oder 'Rich Text Format' und anschließender Nutzung der zurückerhaltenen ID landet doch nur 'plain text' in der Zwischenablage. Wenn ich in einer Schleife oClipBoard:GetFormatName() abrufe und anschließend einen Wert nutze, für den 'Rich Text Format' oder 'RTF' zurückgegeben wurde, bleibt es trotzdem bei reinem Text. In der XPB.CH ist keine Konstante hierfür definiert. Wenn ich aber z.B. aus WordPad einen Text in die Zwischenablage kopiere und dann in mein Control einfüge, landet er formatiert dort. WTF? Hat jemand eine Lösung?
Ich suche mir schon den ganzen Tag lang den Wolf. Ich will einen kompletten formatierten RTF-Text an die Zwischenablage übergeben und in ein RTF-Control (TX Text Control) einfügen. Wenn ich das standardmäßig - oClipBoard:SetBuffer(cRtfText) - mache, landet natürlich der gesamte Text mit Formatierungsanweisungen dort. Also muss ich der Zwischenablage beim SetBuffer() über den zweiten Parameter sagen, dass es sich um RTF handelt. Mit RegisterFormat('RTF') oder 'Rich Text Format' und anschließender Nutzung der zurückerhaltenen ID landet doch nur 'plain text' in der Zwischenablage. Wenn ich in einer Schleife oClipBoard:GetFormatName() abrufe und anschließend einen Wert nutze, für den 'Rich Text Format' oder 'RTF' zurückgegeben wurde, bleibt es trotzdem bei reinem Text. In der XPB.CH ist keine Konstante hierfür definiert. Wenn ich aber z.B. aus WordPad einen Text in die Zwischenablage kopiere und dann in mein Control einfüge, landet er formatiert dort. WTF? Hat jemand eine Lösung?
Herzlich,
Tom
Tom
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: RTF formatiert an Clipboard
Tom,
indem du die Auslagerung nicht über das Clipboard machst, sondern via temp. Datei.
indem du die Auslagerung nicht über das Clipboard machst, sondern via temp. Datei.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: RTF formatiert an Clipboard
Hallo, Herbert.
Ich habe mehrere Sammlungen von (Standard-)Texten und Textbausteinen, die mit TX verwaltet werden. Diese Texte kann man in verschiedenen Verwaltungssystematiken abrufen. Dort besteht schon die Möglichkeit, sie - quasi als Vorlage - zu laden. Ich will aber a) die Möglichkeit bieten, in einen bestehenden Text oder an einen bestehenden Text heran zu kopieren, wofür sich das Clipboard anbietet. Gleichzeitig muss b) die Möglichkeit bestehen, diese Texte formatiert über die Zwischenablage auch in anderen Anwendungen (TV) zu nutzen. Der Umweg über eine gespeicherte Textdatei, die geladen wird, wird also erstens schon genutzt und ist zweitens in diesem Fall nicht sinnvoll. Und - es muss ja gehen. Wenn ich in WordPad einen RTF-Text öffne und (auch teilweise) kopiere, wandert er als "RTF" in die Zwischenablage und kann in meine Module - auch als neuer Teil - importiert werden. Ich weiß nur nicht, wie ich dem Clipboard sage, dass JETZT RTF kommt. Wenn ich mir in einem solchen Fall die Zwischenablage z.B. mit "ClipMagic" ansehe, kann ich dort den formatierten und den ursprünglichen Text (mit Formatierungsanweisungen) anschauen, und als Clip-Format wird "RTF" angezeigt.
Also - danke für Hinweise auf irgendwelche Workarounds, aber das kann ich leider nicht brauchen.
Ich habe mehrere Sammlungen von (Standard-)Texten und Textbausteinen, die mit TX verwaltet werden. Diese Texte kann man in verschiedenen Verwaltungssystematiken abrufen. Dort besteht schon die Möglichkeit, sie - quasi als Vorlage - zu laden. Ich will aber a) die Möglichkeit bieten, in einen bestehenden Text oder an einen bestehenden Text heran zu kopieren, wofür sich das Clipboard anbietet. Gleichzeitig muss b) die Möglichkeit bestehen, diese Texte formatiert über die Zwischenablage auch in anderen Anwendungen (TV) zu nutzen. Der Umweg über eine gespeicherte Textdatei, die geladen wird, wird also erstens schon genutzt und ist zweitens in diesem Fall nicht sinnvoll. Und - es muss ja gehen. Wenn ich in WordPad einen RTF-Text öffne und (auch teilweise) kopiere, wandert er als "RTF" in die Zwischenablage und kann in meine Module - auch als neuer Teil - importiert werden. Ich weiß nur nicht, wie ich dem Clipboard sage, dass JETZT RTF kommt. Wenn ich mir in einem solchen Fall die Zwischenablage z.B. mit "ClipMagic" ansehe, kann ich dort den formatierten und den ursprünglichen Text (mit Formatierungsanweisungen) anschauen, und als Clip-Format wird "RTF" angezeigt.
Also - danke für Hinweise auf irgendwelche Workarounds, aber das kann ich leider nicht brauchen.
Herzlich,
Tom
Tom
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: RTF formatiert an Clipboard
Ja, deine Argumentation leuchtet ein.
Schade, genau du hast sonst die unglaublich einfachen Lösungs-Umwege, die hinhauen. do hoffte ich, zurückzugeben, was du so glatt mit links tust...
Also: Clipboard erkennt scheinbar die RTF. Also musst du dem Clipboard beibringen, dass...
schau mal hier: http://www.ml-consult.co.uk/foxst-35.htm
Schade, genau du hast sonst die unglaublich einfachen Lösungs-Umwege, die hinhauen. do hoffte ich, zurückzugeben, was du so glatt mit links tust...
Also: Clipboard erkennt scheinbar die RTF. Also musst du dem Clipboard beibringen, dass...
schau mal hier: http://www.ml-consult.co.uk/foxst-35.htm
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: RTF formatiert an Clipboard
Hi,
Das Clipboard kennt auf jeden Fall das Format RTF, denn wenn ich im Büro in Lotus Notes
oder Framemaker nur den Text einfügen will zerschlägt mir meist RTF Text mein gewünschtes Ergebnis
Erst wenn ich Inhalte einfügen wähle oder über Notepad nochmal cut & paste mache erhalte ich "plain Text".
Bei den Inhalten wird RTF Format angezeigt.
Genauso wie in Windev ...
Beim Auslesen nutzt WinDev eine andere Funktion:
daraus schließe ich, dass es normal ist, dass auch RTF als normaler Text gelesen wird und im Programm
dann daraus "etwas besonderes" wird - daher die andere Funktion.
So wie ich XbpRtf() verstehe, wird dieses doch mit plain Text im RTF Format gefüttert und es nutzt dieses oder ?
Das Clipboard kennt auf jeden Fall das Format RTF, denn wenn ich im Büro in Lotus Notes
oder Framemaker nur den Text einfügen will zerschlägt mir meist RTF Text mein gewünschtes Ergebnis
Erst wenn ich Inhalte einfügen wähle oder über Notepad nochmal cut & paste mache erhalte ich "plain Text".
Bei den Inhalten wird RTF Format angezeigt.
Genauso wie in Windev ...
Code: Alles auswählen
if ClipboardFormat(cfRtf) THEN -> RTF-Format in Zwischenablage
if ClipboardFormat(cfText) THEN -> NUR TEXT-Format in Zwischenablage
Beim Auslesen nutzt WinDev eine andere Funktion:
Code: Alles auswählen
Clipboard() -> Text ODER Bitmap
ClipboardRTF() -> RTF Text
dann daraus "etwas besonderes" wird - daher die andere Funktion.
So wie ich XbpRtf() verstehe, wird dieses doch mit plain Text im RTF Format gefüttert und es nutzt dieses oder ?
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: RTF formatiert an Clipboard
frage "wie" hast du den RTF-Text "geladen", "markiert" und dann "kopiert" ?Tom hat geschrieben:Ich will einen kompletten formatierten RTF-Text an die Zwischenablage übergeben und in ein RTF-Control (TX Text Control) einfügen. Wenn ich das standardmäßig - oClipBoard:SetBuffer(cRtfText) - mache, landet natürlich der gesamte Text mit Formatierungsanweisungen dort. Also muss ich der Zwischenablage beim SetBuffer() über den zweiten Parameter sagen, dass es sich um RTF handelt.
wenn du als "wie" XbpRTF() verwendest solltest du mal die Property :SelRTF ausprobieren, der ganze RTF-Text wäre dann die Property :TextRTF
für das "kopieren" in das Clipboard hat RICHTX32.OCX selber nichts, aber man kann das verwenden
Code: Alles auswählen
METHOD MyRtf:Copy()
SendMessageA( ::GetHWND(), WM_COPY, 0, 0 )
RETURN SELF
gruss by OHR
Jimmy
Jimmy
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: RTF formatiert an Clipboard
Hi tom,
wie wäre es, wenn du den RTF-Text in eine Datei speicherst und diese dann in einem MLE anzeigst.
du kannst dann so
die Formatierung rausnehmen.
wie wäre es, wenn du den RTF-Text in eine Datei speicherst und diese dann in einem MLE anzeigst.
du kannst dann so
Code: Alles auswählen
oMle:format:=3
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: RTF formatiert an Clipboard
Hallo, Rolf.
Geiler Vorschlag. Aber unformatierten Text kann ich längst kopieren. Dafür brauche ich auch keinen Umweg über MLEs.
Hallo, Jimmy.
Das TX erlaubt mir den Zugriff auf den Rohtext (unformatierter Text) und den Text im vorliegenden Format (also hier RTF).
Aber Deine Frage hat mich prinzipiell in die richtige Richtung gelenkt. Da der Text im Moment des Kopierens zu sehen ist (es wird eine Tabelle mit den Textnamen und darunter der jeweilige Text angezeigt), kann ich ihn auch programmgesteuert im Control komplett markieren und die implizite Kopierfunktion des TX Controls benutzen. Und, siehe da: Es landet RTF im Clipboard. Und wieder im Zieltext!
Geiler Vorschlag. Aber unformatierten Text kann ich längst kopieren. Dafür brauche ich auch keinen Umweg über MLEs.
Hallo, Jimmy.
Das TX erlaubt mir den Zugriff auf den Rohtext (unformatierter Text) und den Text im vorliegenden Format (also hier RTF).
Aber Deine Frage hat mich prinzipiell in die richtige Richtung gelenkt. Da der Text im Moment des Kopierens zu sehen ist (es wird eine Tabelle mit den Textnamen und darunter der jeweilige Text angezeigt), kann ich ihn auch programmgesteuert im Control komplett markieren und die implizite Kopierfunktion des TX Controls benutzen. Und, siehe da: Es landet RTF im Clipboard. Und wieder im Zieltext!
Herzlich,
Tom
Tom