AGB  ·  Datenschutz  ·  Impressum  







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

Absatzmarken in TMemo

Ein Thema von bcvs · begonnen am 17. Jan 2014 · letzter Beitrag vom 12. Dez 2019
Antwort Antwort
bcvs

Registriert seit: 16. Jun 2011
721 Beiträge
 
Delphi 12 Athens
 
#1

Absatzmarken in TMemo

  Alt 17. Jan 2014, 13:07
Hallo zusammen,

Ich habe ein einfaches TMemo, in dass ein bischen Text eingegeben wird. Jetzt will ein Kunde seine Zeilenumbrüche besser im Griff haben und wünscht sich Absatzmarken, wie man sie sich z.B. in Word anzeigen lassen kann. Ich könnte natürlich alle #10#13 im Memo.text durch #10#13#183 ersetzen, aber dann habe ich das Absatzzeichen als editierbares Zeichen im Memo drin, was ja auch nicht gewünscht ist.

Habt ihr eine Idee oder eine Komponente, mit der man das lösen kann? Ich könnte auch WPTools verwenden, aber das erscheint mir an dieser Stelle eher Overkill.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Absatzmarken in TMemo

  Alt 17. Jan 2014, 13:32
Da bleibt dann wohl nur ein RichEdit, wo man nicht nur Text reinmachen kann.



PS: #13#10 (CRLF) und nicht #10#13, oder doch besser sLineBreak.

PPS: Im neuen TRichEdit ist der Zeilenumbruch nur noch ein #13 (Mac), anstatt den bekannten #10 (Linux/Unix) und Windows (#13#10).
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Absatzmarken in TMemo

  Alt 17. Jan 2014, 15:02
Theoretisch kann man in TRichEdit Bereiche schützen. Im Grunde sogar sehr einfach. Das Paragraph Zeichen könnte man dann schützen, man könnte es dann nicht mehr löschen. Soviel zu den guten Nachrichten.

Ich kann mich jetzt nicht mehr an die Einzelheiten erinnern, aber ich kann mich erinnern, dass ich mal mit dem Schutz experimentiert habe und daran geradezu verzweifelt bin. Irgendwie konnte ich den gesperrten Bereich nicht wieder entsperren. Ich weiß nicht ob es dann wieder hingekriegt habe, aber daran kann ich mich erinnern.
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
721 Beiträge
 
Delphi 12 Athens
 
#4

AW: Absatzmarken in TMemo

  Alt 20. Jan 2014, 12:39
Vielen Dank für den Hinweis mit dem geschützten Bereich im TRichedit.

Damit habe ich das jetzt implementiert. Für die Entfernung des Schutzes muss man einfach in OnProtectChange das AllowChange entsprechend setzen.

Im OnChange werden die Absatzmarken eingefügt und gleich geschützt. Dann musste ich noch in OnSelectionChange einige Cursorbewegungen abfangen und abändern, damit der Cursor sich so verhält, wie man es erwartet. Dabei muss man noch aufpassen, dass sich die Events nicht rekursiv aufrufen.
  Mit Zitat antworten Zitat
ASM

Registriert seit: 16. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Absatzmarken in TMemo

  Alt 20. Jan 2014, 13:53
Vielleicht kannst Du hiermit etwas anfangen:
Delphi-Quellcode:
procedure TForm1.SetMemoTab(Memo: TMemo; TabWidth: Integer);
var
  DialogUnitsX: LongInt;
  PixelsX: LongInt;
  TabArray: array[0..19] of integer; // kann ggf. auch größer gesetzt werden
  i: integer;
begin
  Memo.WantTabs := true;
  DialogUnitsX := LoWord(GetDialogBaseUnits);
  PixelsX := TabWidth;
  for i := 1 to Length(TabArray) do
    TabArray[i - 1] := ((PixelsX * i) * 4) div DialogUnitsX;
  SendMessage(Memo.Handle, EM_SETTABSTOPS, Length(TabArray), LongInt(@TabArray));
  Memo.Refresh;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Text:='';
  // Starteinstellung, hier mit TabAbstand = 50 Pixel
  SetMemoTab(Memo1, 50);
end;

// Möglichkeit zur nachträglichen Änderung des TabAbstandes
procedure TForm1.Button1Click(Sender: TObject);
Var TabDist: Integer;
begin
  // TabAbstand zuvor in Edit1 vorgeben, z.B. auf 100 Pixel
  if not TryStrToInt(Edit1.text, TabDist) then exit;
  SetMemoTab(Memo1, TabDist);
end;
Die Einstellung der Tabs wirkt sich grundsätzlich immer auf alle Zeilen aus, d.h. dies auch bei nachträglicher Veränderung des Tabulaturabstandes.
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
721 Beiträge
 
Delphi 12 Athens
 
#6

AW: Absatzmarken in TMemo

  Alt 20. Jan 2014, 16:32
Danke, aber Tabulatoren sind momentan noch nicht gefragt, evtl. später.
  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 02:43 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 by Thomas Breitkreuz