AGB  ·  Datenschutz  ·  Impressum  







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

RTF - Absatzhintergrund setzen

Ein Thema von DeddyH · begonnen am 5. Jul 2011 · letzter Beitrag vom 18. Jul 2011
Antwort Antwort
Seite 2 von 8     12 34     Letzte »    
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#11

AW: RTF - Absatzhintergrund setzen

  Alt 7. Jul 2011, 15:26
Wenn Du was gefunden hast, denke ich mal, daß Du es andere wissen läßt.
Aber selbstverfreilich
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#12

AW: RTF - Absatzhintergrund setzen

  Alt 7. Jul 2011, 17:23
Ich habe einmal etwas herum gespielt, mit folgendem Code kann man durchaus Farbmanipulationen durchführen:
Delphi-Quellcode:
var
  format:tparaformat2;
begin
  richedit1.SelStart:=11;
  richedit1.SelLength:=40;
  memo1.Lines.Text:=richedit1.seltext;
  format.cbSize:=sizeof(format);
  format.dwMask:=PFM_SHADING;
  richedit1.Perform(EM_GETPARAFORMAT,0,longint(@format));
  application.ProcessMessages;
  format.dwMask:=PFM_SHADING;
  format.cbSize:=sizeof(format);
  format.wShadingWeight:=50;
 // format.wShadingStyle:=$0FF0;
 // format.wShadingStyle:=$0700;
 format.wShadingStyle:=$0800;
  richedit1.Perform(EM_SETPARAFORMAT,0,longint(@format));
  application.ProcessMessages;
  richedit1.Lines.SaveToFile('c:\temp\test.rtf');
end;
Das ist dann das Ergebnis:
Code:
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil Tahoma;}}
{\colortbl ;\red0\green0\blue0;}
\viewkind4\uc1\pard\f0\fs16 RichEdit1
\par \pard\cbpat1\shading50 das ist der zweite Absatz
\par dies ist der der dritte
\par \pard und das ist nummero4
\par
\par }
Wobei sich je nach eingegebenem wert die colortbl ändert.
Aber wenn wShadingStyle:=$x8xx; gesetzt wird, dann hat man einen schwarz hinterlegten Absatz in der Word-Anzeige. Ist dieses Bit nicht gesetzt, dann gibt es keine Farben und auch sonst nichts zu sehen.
(Word2003)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#13

AW: RTF - Absatzhintergrund setzen

  Alt 7. Jul 2011, 17:46
Danke für Deine Mühen. Aber das widerspricht doch auch der Beschreibung im MSDN, oder täusche ich mich? Wieso enthält die Colortable nur eine Farbe, und die ist schwarz? Hätten es nicht Schwarz(Vordergrund) und Dunkelblau(Hintergrund) sein müssen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

AW: RTF - Absatzhintergrund setzen

  Alt 7. Jul 2011, 18:12
Das ist eine gute Frage!
das
Code:
{\colortbl ;\red0\green0\blue0;}
ist das Ergebnis von $0800.
wenn ich mich nicht irre ergibt $0F00
Code:
{\colortbl ;\red192\green0\blue192;}
Aber es wird nichts angezeigt!
Die RTF-Doku schreibt
Zitat:
Each definition must be delimited by a semicolon, even if the definition is omitted. If a color definition is omitted, the RTF reader uses its default color. The following example defines the default color table used by Word. The first color is omitted, as shown by the semicolon following the \colortbl control word. The missing definition indicates that color 0 is the ‘’auto’’ color.
{\colortbl;\red0\green0\blue0;\red0\green0\blue255 ;
jetzt weiß ich beim besten Willen nicht wo er anfängt zu Zählen, Ich gehe davon aus, daß in PARAMETER2 die Bits verschoben sind. Noch mehr stört mich allerdings, daß die Anzeige so stur ist. Die ganze Sucherei als letztlich vergebliche Liebesmüh.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#15

AW: RTF - Absatzhintergrund setzen

  Alt 7. Jul 2011, 19:06
Und genau das ist, was mich an der ganzen Sache so stört. Die Werte, die durch wildes Herumprobieren entstehen, bewirken eine Farbänderung (zwar nicht die gewünschte, aber immerhin irgendeine). Versucht man es aber laut Doku, dann passiert entweder gar nichts oder nicht das, was eigentlich passieren sollte. Irgendwie ist da fürchterlich der Wurm drin. Machen wir irgendwas falsch?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
delnu
(Gast)

n/a Beiträge
 
#16

AW: RTF - Absatzhintergrund setzen

  Alt 8. Jul 2011, 01:29
Hallo, Leute !

Anhand des Beispiels von p80286 habe ich zunächst auch etwas herumgedoktert und es kam auch nur Müll raus wie bei Euch, weiß auf schwarz. Ich habe kein Word, sondern die Ergebnisse mit OpenOffice getestet. Dort habe ich dann auch mal die Werte so eingestellt, wie sie sein sollen, gespeichert und mir die relevante Stelle angesehen.

Die Farbtabelle besteht dann aus 3 Werten : 0,0,0,192,192,192,128,128,128

Nun habe ich also die beiden falschen Werte durch die 3 korrekten ersetzt, das Ergebnis geladen und mir anzeigen lassen, was denn nun da stehen muß. Das Ergebnis überrascht, denn es liegt ganz woanders als bei der Rumdokterei : format.wShadingStyle:=$8040;

Ich habe es mit Delphi 7 getestet. Das Beispiel anbei. Viel Vergnügen damit.

Irgendwie bekommen wir irgendwann sicher RichEdit auch noch dazu, das darzustellen.
Angehängte Dateien
Dateityp: zip RTF.ZIP (218,4 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#17

AW: RTF - Absatzhintergrund setzen

  Alt 8. Jul 2011, 08:06
Genau so wollte ich es haben, Danke . Aber es bleibt die Frage: wie kommt dieser Wert zustande? Und gilt der auch künftig weiterhin? Gibt es ein Leben vor dem Tod? Fragen über Fragen
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#18

AW: RTF - Absatzhintergrund setzen

  Alt 8. Jul 2011, 10:32
Also ohne es genau zu prüfen, das riecht doch sehr nach least significant und Konsorten, vielleicht hat da jemand die Abspeicherung und die Registerinhalte vertauscht?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#19

AW: RTF - Absatzhintergrund setzen

  Alt 8. Jul 2011, 10:33
Der Gedanke war mir auch zuerst gekommen, aber $0FF0 ist ja vorwärts und rückwärts dasselbe, oder nicht? Ich komme schon ganz durcheinander hier.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#20

AW: RTF - Absatzhintergrund setzen

  Alt 8. Jul 2011, 10:40
Nee $0FF0 oder $F00F ?
Bei delnu's Lösung wäre das verkehrt $4080 ?
wenn man jetzt noch die Nibbels tauscht??

Ich liebe diese verquere Logik!

Gruß
K-H

P.S.
warum hatte ich eigentlich keine bunte Anzeige?
Gib'ts da einen wert der auch für mich ein Erfolgserlebnis verspricht?
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 8     12 34     Letzte »    


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 21:43 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