#13#10 funzt in synedit nicht!
Hi @all
Ich habe ein Problem: in Synedit (diese Highlight-Komponente; Edit UND Memo) kann man einen Zeilenumbruch NICHT mit #13#10 einfügen, muss ich aber, da ich ein Template auslese und alle '|' mit einem Zeilenumbruch mithilfe von Stringreplace (a := stringreplace(a,'|', #13#10,[rfReplaceAll, rfIgnoreCase]);) ersetzen will. da kommt dann nur soetwas raus: blablablablabla WIE geht das? mfg :: ich |
Re: #13#10 funzt in synedit nicht!
Hallo!
Sollte so funktionieren:
Delphi-Quellcode:
a := stringreplace(a,'|', #$D#$A ,[rfReplaceAll, rfIgnoreCase])
|
Re: #13#10 funzt in synedit nicht!
Versuch mal "#13#10" durch "#13+#10" zu ersetzen. Also so:
Delphi-Quellcode:
Ungetestet ;)
a := stringreplace(a,'|', #13 + #10,[rfReplaceAll, rfIgnoreCase]);
//edit: @Toms: So, wie ich das sehe, ist das doch nur die hexadezimale Schreibweise, ansonsten gibt es jedoch keine Unterschiede. "#13#10" ist imho 100% gleichbedeutend mit "#$D#$A" ;) |
Re: #13#10 funzt in synedit nicht!
Nein das geht so nicht.
SynEdit unterstützt mehrere Zeilenumbruchformate: Windows, UNIX und MAC. Machs doch wie folgt: Such dir mit Hilfe von Pos() dein Zeichen aus dem Template und dann fügst du mit SynEdit.Lines.Add() eine neue Zeile hinzu. Dann suchst du den nächsten "Umbruch" aus deinem Template und immer so weiter. |
Re: #13#10 funzt in synedit nicht!
@toms: #$D#$A ist #13#10 in Hex.. also nichts anderes
@malo: Chars mit angegebenem Code werden automatisch zu Strings zusammengefügt Versuchs mal mit entweder nur #10 oder #13. Sollte eigentlich klappen. PS: #13#10 geht bei mir als EOL-Identifier.. :gruebel: |
Re: #13#10 funzt in synedit nicht!
So wie bigg schreibt. Add fügt wirklich eine neue Zeile hinzu und schert sich nicht um Zeilenumbrüche. Am einfachsten, dafür am langsamsten ist, wenn du SynEdit.Lines.Text := SynEdit.Lines.Text + NeuerText machst.
Ansonsten. Auch #13 + #10 ist das gleiche wie #13#10 ;) |
Re: #13#10 funzt in synedit nicht!
Zitat:
Hab's mal mit #$D#$A probiert. geht. |
Re: #13#10 funzt in synedit nicht!
Zitat:
|
Re: #13#10 funzt in synedit nicht!
erstmal danke an alle, ging ja schnell!
#$D#$A ist #13#10 und auch #13#10 funzen nicht, immer wieder die lustigen rechtecke ... mit synedit.lines.add('') könnte ich es zwar machen, iss aber ein bisschen aufwendig ... :roll: 'SynEdit.Lines.Text := SynEdit.Lines.Text + NeuerText' iss nicht so gut, da ich auch mittendrin etwas ersetzen will/muss ... sonst noch einfachere vorschläge? |
Re: #13#10 funzt in synedit nicht!
Wie isn das eigentlich zum Thema Syn-Edit, woher bekomme ich so einen Syntaxhighlighter mit Codefolding??
|
Re: #13#10 funzt in synedit nicht!
@toms: #$D#$A funzt bei mir nicht
|
Re: #13#10 funzt in synedit nicht!
Wie fügst denn überhaupt den Text in das Synedit ein? Denn genau dort liegt das Problem. Du kannst nicht ohne weiteres Add / Insert /oder ähnliches verwenden, da diese nur eine Zeile hinzufügen und sich einen Dreck um Zeilenumbrüche kümmern. Du könntest nur alles in einer Temporären StringList machen und anschließend den Text zuweisen.
Delphi-Quellcode:
Nur bei einer Zuweisung von Text werden die Zeilenumbrüche aufgelöst. Ist genau das selbe Problem wie bei Listboxen und anderen Komponenten die die Stringlist nutzen.
var
sl: TStringList; begin sl:=TStringList.Create; sl.AddStrings(Synedit.Lines); // Mache was mit sl Synedit.Lines.Text:=sl.Text; end; |
Re: #13#10 funzt in synedit nicht!
Zitat:
|
Re: #13#10 funzt in synedit nicht!
@jim_raynor: danke, so kann ich es machen
|
Re: #13#10 funzt in synedit nicht!
Also ich mache das folgendermaßen:
einmal eine Konstante definieren:
Delphi-Quellcode:
Dann füge ich den Text ein:
const
endl =#13+#10;
Delphi-Quellcode:
Das klappt bisher immer.
SynEdit1.SelText := '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' + endl + 'weiterer Text...';
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 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