![]() |
RichEdit und Textausrichtung - Code hat keine Auswirkung
Hallo Leute,
habe ein Projekt, bei dem ich ziemlich viel mit der Paraformat2-Struktur arbeite (Einrücken, Aufzählung etc..) Nun wollte ich das Projekt um eine Textausrichtung erweitern. Dazu habe ich meinem Muster wieder eine Paraformat-Struktur angelegt, die Ausrichtung gesetzt und diese Struktur dem Editor übergeben. Es gibt keine Fehlermeldung, der Code hat halt einfach nur keine Auswirkung. Ich finde den Fehler nicht. Die Vorgehensweise habe ich im ganzen Projekt - und da klappts dann auch immer
Delphi-Quellcode:
Ich hoffe, ihr könnt mir helfen. Achso: Ja, ich weiß, dass es einen Aligment-Typ gibt. Ich habe bei dem Erstellen dieses Codes nicht darauf geachtet. Ginge einfacher.
var
fmt: TParaformat2; begin ZeroMemory(@fmt, SizeOf(TParaFormat2)); fmt.cbSize := SizeOf(TParaFormat2); fmt.dwMask:=PFM_ALIGNMENT; Editor.Perform(EM_GETPARAFORMAT, 0, lParam(@fmt)); if (Align = 'left') then begin fmt.wAlignment:=PFA_LEFT; end else if (Align = 'center') then begin fmt.wAlignment:=PFA_CENTER; end else if (Align = 'right') then begin fmt.wAlignment:=PFA_RIGHT; end else if (Align = 'justify') then begin fmt.wAlignment:=PFA_JUSTIFY; end; Editor.Perform(EM_SETPARAFORMAT, 0, lParam(@fmt)); Danke im Voraus |
AW: RichEdit und Textausrichtung - Code hat keine Auswirkung
Hi,
Ich kann dir du deiner Frage keine genaue Antwort geben. Aber warum nutzt du nicht die "Paragraph"-Eigenschaft deines RE. zB.:
Delphi-Quellcode:
RichEdXYZ.Paragraph.Alignment := taCenter;
|
AW: RichEdit und Textausrichtung - Code hat keine Auswirkung
Halte mich für einen Idioten...: Aber auf die oben dargestellte Weise ist es i-wie cooler ;)
Zumal das ganze Projekt so aufgebaut ist. Evtl. hilft es auch, da es nonvlc ist, denn ich die Editor-Komponente wechsel und diese vllt. nicht mehr diese Eigenschaft hat. ;) |
AW: RichEdit und Textausrichtung - Code hat keine Auswirkung
Hat Perform nicht auch einen Rückgabewert (Result), welches man auswerten kann?
|
AW: RichEdit und Textausrichtung - Code hat keine Auswirkung
Danke für die Antwort. Daran habe ich garnicht gedacht.
Delphi-Quellcode:
ShowMessage1: 0
...
end else if (Align = 'justify') then begin fmt.wAlignment:=PFA_JUSTIFY; end; ShowMessage(IntToStr(Editor.Perform(EM_SETPARAFORMAT, 0, lParam(@fmt)))); ShowMessage(SysErrorMessage(GetLastError())); ShowMessage2: Der Vorgang wurde erfolgreich ausgeführt. |
AW: RichEdit und Textausrichtung - Code hat keine Auswirkung
hmmmmmm :?
du hast aber auch was markiert (SelStart und Co.), worauf diese Änderung ihre Auswirkung zeigen kann. |
AW: RichEdit und Textausrichtung - Code hat keine Auswirkung
Ja klar. Ich haue zum Testen wie wild in die Tasten ("sadasdah had ad"), markiere den sinnreichen Text und klicke dann auf den Button mit dem o.g. Code. Nix tut sich.
Aber wie gesagt: Die Vorgehensweise ist mir bekannt und immer die gleiche. Der Editor ist auch der richtige ... |
AW: RichEdit und Textausrichtung - Code hat keine Auswirkung
Du holst Dir zuvor ParaFormat mit
Delphi-Quellcode:
.
Editor.Perform(EM_GETPARAFORMAT, 0, lParam(@fmt));
Ist danach etwas falsch gesetzt, evtl dwMask nicht mehr auf PFM_ALIGNMENT |
AW: RichEdit und Textausrichtung - Code hat keine Auswirkung
Bingo! Das war's!
Das setzen der Mask muss nach dem Holen passieren! Vielen Dank für die Hilfe. Ich hätte noch Ewigkeiten gesucht. Also so:
Delphi-Quellcode:
Nicht so:
Editor.Perform(EM_GETPARAFORMAT, 0, lParam(@fmt));
fmt.dwMask:=PFM_ALIGNMENT;
Delphi-Quellcode:
Vielen Dank!
fmt.dwMask:=PFM_ALIGNMENT;
Editor.Perform(EM_GETPARAFORMAT, 0, lParam(@fmt)); |
AW: RichEdit und Textausrichtung - Code hat keine Auswirkung
Hm, eine Frage bleibt dennoch offen.
Warum ist PFA_JUSTIFY vom Effekt her das gleiche wie PFA_LEFT? Wird der Blocksatz vom jvRichEdit nicht unterstützt? Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36 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