![]() |
LeftIndent für markierten text
Hi!
Ich habe folgendes Problem: Ich will einen markierten Text in einem RichEdit auf knopfdurck einen leftindent verpassen. ist das möglich? |
Re: LeftIndent für merkierten text
Willste Leerzeichen einfügen, oder einen Tab ?
Bei Leerzeichen: RichEdit1.SelText := ' ' + RichEdit1.SelText; |
Re: LeftIndent für merkierten text
ich habe ein memo durch ein richedit ersetzt. vorher habe ich das auch so gemacht, was jetzt aber nciht mehr geht:
markierten text in ein tempRE cutten text hinter der markierung in ein tempRE2 cutton absatz mit indent erstellen temp1 einfügen absatz beenden temp2 einfügen geht das? |
Re: LeftIndent für merkierten text
Hi!
Zeig am Besten mal deinen Code, der im Memo das gemacht, was du haben wolltest. Dann ist es wahrscheinlich einfacher zu verstehen. Ciao fkerber |
Re: LeftIndent für merkierten text
Hallo Xeno-Sebi,
die RichEdit-Komponente besitzt dafür eine Methode, mit welcher es ganz einfach sein sollte den Text einen linken Einzug zu verpassen.
Delphi-Quellcode:
Tschüß Markus
RichEdit1.Paragraph.LeftIndent:=...;
|
Re: LeftIndent für merkierten text
ja ist auch ganz einfach...also das hat sich erledigt, aber ein neues, viel schlimmeres prob taucht auf:
Delphi-Quellcode:
(funzt supa)
procedure TForm1.TrackBar1Change(Sender: TObject);
begin text.Paragraph.FirstIndent:=TrackBar1.Position; end; ABER: ich benutze einen timer, der alle 3 sec. ein syntaxhighligh aktuallisiert. dazu wird der inhalt des "text"es (TRichEdit) in ein anderes verschoben. Dabei geht der indent verloren und alles ist wieder links am rand. hier der Code:
Delphi-Quellcode:
bis auf dieses problem geht alles...
procedure TForm1.syntaxtimerTimer(Sender: TObject);
var textselstart,textsellength:integer; var codetext:TRichEdit; var temptext:TStringList; Begin textselstart:=text.SelStart; textsellength:=text.SelLength; temptext:=TStringList.Create; codetext:=TRichEdit.Create(Form1); temptext.Text:=text.Text; temptext.Text:=StringReplace(temptext.text, '}', '[zU]', [rfReplaceAll]); temptext.Text:=StringReplace(temptext.text, '{', '[aUF]', [rfReplaceAll]); codetext.text:='{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil MS Sans Serif;}}{\colortbl ;\red0\green0\blue255;\red100\green0\blue100;\red0\green200\blue0;\red150\green150\blue150;\red0\green150\blue150;}\viewkind4\uc1\pard\f0\fs16'; codetext.text:=codetext.text+StringReplace(temptext.Text, '<', '\cf1<', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '>', '>\cf0', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '//', '\cf4//\cf0', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '/*', '\cf4/*\cf0', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '*/', '\cf4*/\cf0', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '<script', '\cf2<script', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '</script>', '\cf2</script>\cf0', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '<!--', '\cf2<!--', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '-->', '\cf2-->\cf0', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, 'function', '\b function\b0 ', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, 'if', '\b if\b0 ', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, 'else', '\b else\b0 ', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, 'while', '\b while\b0 ', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, 'for', '\b for\b0 ', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, 'foreach', '\b foreach\b0 ', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, 'var', '\b var\b0 ', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, 'array', '\b array\b0 ', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '"', '\b "\b0 ', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '<?', '\cf3<?', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '?>', '\cf3?>\cf0', [rfIgnoreCase,rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '[zU]', '{\}}', [rfReplaceAll]); codetext.text:=StringReplace(codetext.text, '[aUF]', '{\{}', [rfReplaceAll]); codetext.text:=StringReplace(codetext.text, chr(13), '\par', [rfIgnoreCase,rfReplaceAll])+'}'; text.text:=codetext.Text; text.SelStart:=textselstart+1000; text.SelStart:=textselstart; text.SelLength:=textsellength; codetext.Destroy; temptext.Destroy; end; ich glaube ich muss direkt im "text" die replace sachen machen... aber wenn ich es so mache:
Delphi-Quellcode:
Dann wird der formatierungskram als text in des re reingeschrieben UND wie ich jetzt sehe, verschwindet der indent auch...mist
text.text:=StringReplace(text.Text, '<', '\cf1<', [rfIgnoreCase,rfReplaceAll]);
usw... Edit No.3: soll ich den indent für jede einzelne zeile speichern??? |
Re: LeftIndent für markierten text
Hi!
Mach am besten für die neue Frage ein neues Topic auf, dann wird es schneller gefunden. Ciao fkerber |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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