AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi RichEdit und Textausrichtung - Code hat keine Auswirkung
Thema durchsuchen
Ansicht
Themen-Optionen

RichEdit und Textausrichtung - Code hat keine Auswirkung

Ein Thema von TheMiller · begonnen am 22. Nov 2010 · letzter Beitrag vom 22. Nov 2010
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

RichEdit und Textausrichtung - Code hat keine Auswirkung

  Alt 22. Nov 2010, 13:56
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:
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));
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.

Danke im Voraus
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

AW: RichEdit und Textausrichtung - Code hat keine Auswirkung

  Alt 22. Nov 2010, 14:55
Hi,

Ich kann dir du deiner Frage keine genaue Antwort geben.

Aber warum nutzt du nicht die "Paragraph"-Eigenschaft deines RE.
zB.:

RichEdXYZ.Paragraph.Alignment := taCenter;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

AW: RichEdit und Textausrichtung - Code hat keine Auswirkung

  Alt 22. Nov 2010, 15:00
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.

  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.050 Beiträge
 
Delphi 12 Athens
 
#4

AW: RichEdit und Textausrichtung - Code hat keine Auswirkung

  Alt 22. Nov 2010, 15:17
Hat Perform nicht auch einen Rückgabewert (Result), welches man auswerten kann?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

AW: RichEdit und Textausrichtung - Code hat keine Auswirkung

  Alt 22. Nov 2010, 15:21
Danke für die Antwort. Daran habe ich garnicht gedacht.

Delphi-Quellcode:
...
end else if (Align = 'justify') then
  begin
    fmt.wAlignment:=PFA_JUSTIFY;
  end;

  ShowMessage(IntToStr(Editor.Perform(EM_SETPARAFORMAT, 0, lParam(@fmt))));
  ShowMessage(SysErrorMessage(GetLastError()));
ShowMessage1: 0
ShowMessage2: Der Vorgang wurde erfolgreich ausgeführt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.050 Beiträge
 
Delphi 12 Athens
 
#6

AW: RichEdit und Textausrichtung - Code hat keine Auswirkung

  Alt 22. Nov 2010, 15:25
hmmmmmm

du hast aber auch was markiert (SelStart und Co.), worauf diese Änderung ihre Auswirkung zeigen kann.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#7

AW: RichEdit und Textausrichtung - Code hat keine Auswirkung

  Alt 22. Nov 2010, 15:32
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 ...
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#8

AW: RichEdit und Textausrichtung - Code hat keine Auswirkung

  Alt 22. Nov 2010, 15:46
Du holst Dir zuvor ParaFormat mit
Editor.Perform(EM_GETPARAFORMAT, 0, lParam(@fmt)); .
Ist danach etwas falsch gesetzt, evtl dwMask nicht mehr auf PFM_ALIGNMENT
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#9

AW: RichEdit und Textausrichtung - Code hat keine Auswirkung

  Alt 22. Nov 2010, 15:53
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:
  Editor.Perform(EM_GETPARAFORMAT, 0, lParam(@fmt));
  fmt.dwMask:=PFM_ALIGNMENT;
Nicht so:


Delphi-Quellcode:
  fmt.dwMask:=PFM_ALIGNMENT;
  Editor.Perform(EM_GETPARAFORMAT, 0, lParam(@fmt));
Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#10

AW: RichEdit und Textausrichtung - Code hat keine Auswirkung

  Alt 22. Nov 2010, 15:59
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
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:24 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