AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi RTF Linespacing speichern und wiederherstellen
Thema durchsuchen
Ansicht
Themen-Optionen

RTF Linespacing speichern und wiederherstellen

Ein Thema von GreenHorn3600 · begonnen am 23. Okt 2008 · letzter Beitrag vom 26. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
GreenHorn3600

Registriert seit: 24. Jun 2007
165 Beiträge
 
#1

RTF Linespacing speichern und wiederherstellen

  Alt 23. Okt 2008, 21:26
Hallo Zusammen,

ich häng an einen kleinen problem ..., wahrscheinlich ist es nur eine kleinigkeit. ich möcht gern ein line spacing im RTF controll setzen, dies speichern und nach dem speichern später wieder anzeigen. das setzen funktioniert einwandfrei... doch, sobald ich das speichere ist wieder das spacing rule 0 aktiv. weiss jemand von euch, wie man das hinbekommt?


Delphi-Quellcode:
procedure TForm1.bformatClick(Sender: TObject);
var
  aparaformat2 : TParaFormat2;
begin
  ZeroMemory(@aparaformat2, sizeof(aparaformat2));
  aparaformat2.cbSize := SizeOf(aparaformat2);
  aparaformat2.dwMask := PFM_LINESPACING;
  aparaformat2.bLineSpacingRule := 2;
  SendMessage(cxRichEdit1.InnerControl.Handle, EM_SETPARAFORMAT, 0, LParam(@aparaformat2));
end;

procedure TForm1.bRestoreClick(Sender: TObject);
begin
  cxRichEdit1.InternalEditValue := aString;
end;

procedure TForm1.bSaveClick(Sender: TObject);
begin
  aString := cxRichEdit1.InternalEditValue;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  aString := '{\rtf1\ansi\deff0{\fonttbl{\f0\fnil Tahoma;}}'
           + #$D#$A'\viewkind4\uc1\pard\sl0\slmult0\lang2055\f0\fs16 '
           + 'that''s a string with three lines\par'#$D#$A'second\par'
           + #$D#$A'thirt\par'#$D#$A'and so on\par'#$D#$A'}'#$D#$A#0;
  cxRichEdit1.InternalEditValue := aString;
end;
Dank und Gruss

Euer Greeny
  Mit Zitat antworten Zitat
GreenHorn3600

Registriert seit: 24. Jun 2007
165 Beiträge
 
#2

Re: RTF Linespacing speichern und wiederherstellen

  Alt 25. Okt 2008, 17:27
*push*

weiss denn keiner wie man unterschiedliche linespacings im Richedit speichern und anzeigen lassen kann
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#3

Re: RTF Linespacing speichern und wiederherstellen

  Alt 25. Okt 2008, 20:15
Moin, Moin GreenHorn.

Ich denke schon - bei mir funktioniert das mit dem TRichEdit ohne Probleme. Offenbar verwendest du aber eine andere Komponente.

SendMessage(cxRichEdit1.InnerControl.Handle,... Das ..InnerControl.. kenne ich nicht. Beim "normalen" RichEdit wird hier einfach nur RichEdit.Handle verwendet. Liegt es vielleicht daran? Der übrige Code schaut ok aus, die mir unbekannte Textzuweisung im OnCreate() kann ich nicht beurteilen.
Ralph
  Mit Zitat antworten Zitat
GreenHorn3600

Registriert seit: 24. Jun 2007
165 Beiträge
 
#4

Re: RTF Linespacing speichern und wiederherstellen

  Alt 25. Okt 2008, 22:34
Hallo TaakTaak,

Dank für deine Mühe, Du hast Recht, es handelt sich um eine andere Komponente, sie verwendet aber das Standard RichEdit (das ist das InnerControl), denn ich selbst schaff es nicht bei einem TRichEdit den Formatierten Text in eine Variable zu speichern und anschliessend zu laden

Daher habe ich es mal mit einem standard TRichEdit probiert, über den Umweg der Datei, und leider kommt das selbe heraus

Delphi-Quellcode:
procedure TForm1.bformatClick(Sender: TObject);
var
  aparaformat2 : TParaFormat2;
begin
  ZeroMemory(@aparaformat2, sizeof(aparaformat2));
  aparaformat2.cbSize := SizeOf(aparaformat2);
  aparaformat2.dwMask := PFM_LINESPACING;
  aparaformat2.bLineSpacingRule := 2;
  SendMessage(re.Handle, EM_SETPARAFORMAT, 0, LParam(@aparaformat2));
end;
procedure TForm1.bLoadClick(Sender: TObject);
begin
  re.Lines.LoadFromFile(ChangeFileExt(Application.ExeName, '.txt'));
end;
procedure TForm1.bstoreClick(Sender: TObject);
begin
  re.Lines.SaveToFile(ChangeFileExt(Application.ExeName, '.txt'));
end;
Kann es sein, dass ich mich einfach nur zu blöd dafür anstelle?

Dank für Deine Müh.

Euer Greeny
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

Re: RTF Linespacing speichern und wiederherstellen

  Alt 25. Okt 2008, 23:44
Hallo

Wie verhält es sich, wenn du RichEdit2.0 (z.B JVRichEdit) verwendest?
Thomas
  Mit Zitat antworten Zitat
GreenHorn3600

Registriert seit: 24. Jun 2007
165 Beiträge
 
#6

Re: RTF Linespacing speichern und wiederherstellen

  Alt 25. Okt 2008, 23:55
Hallo Toms,

was soll ich sagen auch das TJvRichEdit speichert mir nicht den Zeilenabstand. Das Verhalten der Komponenten ist somit identisch, nur nicht das, was ich gerne möchte

Schöne Grüße
Greeny
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: RTF Linespacing speichern und wiederherstellen

  Alt 26. Okt 2008, 00:04
Wie unterscheidet sich der RTF Code des RichEdits vor und nach dem Speichern?
Thomas
  Mit Zitat antworten Zitat
hamburcher
(Gast)

n/a Beiträge
 
#8

Re: RTF Linespacing speichern und wiederherstellen

  Alt 26. Okt 2008, 01:55
Zitat von toms:
Wie unterscheidet sich der RTF Code des RichEdits vor und nach dem Speichern?
Lass doch mal auf Deinen RTF-Text "Wordpad.exe" los, einmal vor und einmal nach dem Speichern und schau Dir danach die RTF-Dateien mit "Notepad.exe" (oder einem Editor, der RTF-Dateien als plain TXT öffnen kann) an.

So ungefähr würde ich versuchen, dem Fehler auf die Schliche zu kommen.

HTH
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#9

Re: RTF Linespacing speichern und wiederherstellen

  Alt 26. Okt 2008, 05:10
Zitat von hamburcher:
Zitat von toms:
Wie unterscheidet sich der RTF Code des RichEdits vor und nach dem Speichern?
Lass doch mal auf Deinen RTF-Text "Wordpad.exe" los, einmal vor und einmal nach dem Speichern und schau Dir danach die RTF-Dateien mit "Notepad.exe" (oder einem Editor, der RTF-Dateien als plain TXT öffnen kann) an.

So ungefähr würde ich versuchen, dem Fehler auf die Schliche zu kommen.

HTH
Ich meinte den RTF-Code vergleichen. Nicht den Output.
Thomas
  Mit Zitat antworten Zitat
GreenHorn3600

Registriert seit: 24. Jun 2007
165 Beiträge
 
#10

Re: RTF Linespacing speichern und wiederherstellen

  Alt 26. Okt 2008, 08:00
Guten Morgen,

tja, wie vergleichen? Ich habe jetzt hier 3 Komponenten, wie TRichEdit oder TJvRichEdit und jedes Mal das gleiche Ergebnis. Vielleicht stelle ich mich auch nur blöd an . Denke von da her wäre es vielleicht ganz gut, ob jemand anderes das Problem auch nach vollziehen kann, ober ob das Problem vor dem Bildschirm sitzt (Greeny).

Herzlichen Dank
Greeny
  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 18:31 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