Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Edit : Zeilen beachten. (https://www.delphipraxis.net/160635-edit-zeilen-beachten.html)

HerrErdnuss 23. Mai 2011 22:06

Edit : Zeilen beachten.
 
Hallo :)
Ich wollte mal fragen, wie es geht, dass ein Edit Zeilen beachtet.
Kann natürlich auch was anderes sein, als ein Edit.

Hauptsache der Text wird mit den Zeilen wieder ausgegeben.

Vielen Dank im Vorraus.

MfG HerrErdnuss

Luckie 23. Mai 2011 22:08

AW: Edit : Zeilen beachten.
 
Was verstehst du unter "beachten"?

HerrErdnuss 23. Mai 2011 22:09

AW: Edit : Zeilen beachten.
 
Wenn ich ein normales Edit nehme.
Dann kann ich doch nur in 1 Zeile schreiben und es wird nur in 1 Zeile ausgegeben....

Sir Rufo 23. Mai 2011 22:12

AW: Edit : Zeilen beachten.
 
TMemo

Man darf sich auch durch die Komponentenpalette klicken um wenigstens die wichtigsten Komponenten kennenzulernen.

Luckie 23. Mai 2011 22:14

AW: Edit : Zeilen beachten.
 
Zitat:

Zitat von HerrErdnuss (Beitrag 1102442)
Wenn ich ein normales Edit nehme.
Dann kann ich doch nur in 1 Zeile schreiben und es wird nur in 1 Zeile ausgegeben....

Richtig. Und was willst du jetzt machen? Du darfst hier ruhig mehr als zwei Sätze schrieben. Wir sind hier nicht bei Twitter.

HerrErdnuss 24. Mai 2011 14:42

AW: Edit : Zeilen beachten.
 
Ja tut mir Leid.
Ich erklär es genau.
Ich will ein Programmschreiben, was einen String umändert. (Da arbeite ich dann mit den Befehlen copy,delete,etc.)
Aber wenn ich jetzt einen Text reinkopiere / schreibe , wie zB :

"Hallo Lucky,
wie geht es dir??
Mir geht es gut."

Dann erscheint der Text im Editfensterchen ja nur in 1Zeile :(
Wie löse ich das problem, dass ich den Text so bearbeiten kann, wie immer und dazu,
dass man ihn in mehreren Zeilen schreiben kann und er auch in mehreren Zeilen ausgegeben wird.

Ausgabe :

"H a l l o L u c k y,
w i e g e h t e s d i r ? ?
...."


So verständlicher??

turboPASCAL 24. Mai 2011 14:44

AW: Edit : Zeilen beachten.
 
Nimm an Stelle eines TEdit 's ein TMemo.

HerrErdnuss 24. Mai 2011 14:52

AW: Edit : Zeilen beachten.
 
Vielen Dank :D hätte ich auch drauf kommen könne :)
weißte zufällig wie die "Zeilensprünge gewertet werde" (in der Position)
oder sind sie im Programm dann gar nicht da.. also wenn man den String in die Variable schreibt.

DeddyH 24. Mai 2011 14:54

AW: Edit : Zeilen beachten.
 
Ein "Zeilensprung" (Zeilenumbruch) besteht unter Windows aus 2 Zeichen (#13 und #10). Die werden auch mitgezählt.

HerrErdnuss 24. Mai 2011 14:57

AW: Edit : Zeilen beachten.
 
#13 sind allein schon 3 Zeichen oder meinst du Chr(#13)

hmmm wieso sind es den 2 zeichen :( ich brauch ja auch nur die enter taste ...

DeddyH 24. Mai 2011 15:15

AW: Edit : Zeilen beachten.
 
Nochmal: unter Windows besteht ein Zeilenumbruch aus der 13 (Carriage Return) und der 10 (Line Feed).

p80286 24. Mai 2011 15:38

AW: Edit : Zeilen beachten.
 
Delphi-Quellcode:
'ich bin neu'#13#10'aber ich lerne'
sind 27 Zeichen.
und Wenn Du diesen Text in ein TMemo steckst, kannst Du zwei Zeilen zurück bekommen.

Gruß
K-H

himitsu 24. Mai 2011 15:51

AW: Edit : Zeilen beachten.
 
Chr(13) = #13 = 1 Zeichen

Die Enter-Taste hat den Zeichencode 13,
aber im Memo wird der Standardzeilenumbruch vom Windows verwendet ... #10 (Linux), #13 (Mac) wird dabei nach #13#10 aka Delphi-Referenz durchsuchensLineBreak umgewandelt.

Der Windowszeilenumbruch kommt aus der Ansteuerung von Druckern und Text-Monitoren.
Steuerbefehle für nächste Zeile im Drucker:
> 13 / CR / Carriage Return = Motor 1: fahre zum Zeilenanfang
> 10 / LF / Line Feed = Motor 2: schiebe das Blatt eine Zeile weiter

Luckie 24. Mai 2011 17:25

AW: Edit : Zeilen beachten.
 
#13 bezeichnet ein Steuerzeichen. Dein Name besteht ja auch aus mehreren Buchstaben bezeichnet aber auch nur eine Person.

HerrErdnuss 24. Mai 2011 21:03

AW: Edit : Zeilen beachten.
 
ja ok habe ich verstanden :)
aber wenn ich den string des Memo in eine string variable packe.

was würde in der Variable stehen.
bzw. würde wenn man die viariable string in eine TMemo packt, dann wieder alles
schön mit zeilensprüngen ausgegeben?

Jumpy 24. Mai 2011 21:07

AW: Edit : Zeilen beachten.
 
Im Zweifel mal ausprobieren. Dauert keine Minute.

DeddyH 25. Mai 2011 07:03

AW: Edit : Zeilen beachten.
 
Zitat:

Zitat von Jumpy (Beitrag 1102733)
Im Zweifel mal ausprobieren. Dauert keine Minute.

Du verlangst ja Sachen. Wenn das jeder machen würde, könnten wir das Forum schließen :stupid:

mischa 25. Mai 2011 07:39

AW: Edit : Zeilen beachten.
 
Zitat:

Zitat von HerrErdnuss (Beitrag 1102731)
ja ok habe ich verstanden :)
aber wenn ich den string des Memo in eine string variable packe.

was würde in der Variable stehen.
bzw. würde wenn man die viariable string in eine TMemo packt, dann wieder alles
schön mit zeilensprüngen ausgegeben?

Zugriff auf den string: Memo.Lines.Text
Zugriff auf die StringList: Memo.Lines

himitsu 25. Mai 2011 08:19

AW: Edit : Zeilen beachten.
 
Statt Memo.Lines.Text lieber Memo.Text ... es wäre ja etwas zuviel des Guten den Inhalt des Momos durch Lines in Zeilen zerlegen zu lassen und dann wieder über Lines.Text einen String draus zu machen, wo Text es gleich direkt ausliest.

Und ja, die Zeilenumbrüche bleiben im String erhalten.
Du hast doch schon die #13#10 / sLineBreak kennengelernt und nun rate mal, was diese in einem String symbolisieren.
> Es sind Steuerzeichen, welche dem Memo sagen "Eh, hier ist ein Zeilenumbruch".

Coffeecoder 25. Mai 2011 09:05

AW: Edit : Zeilen beachten.
 
Hi,

Als Info: Man sollte noch an dieser Stelle erwähnen, dass
Delphi-Quellcode:
#13#10
nicht im TStringgrid funktioniert. Er macht keinen Zeilenumbruch in einer Zelle vom Stringgrid.

DeddyH 25. Mai 2011 09:14

AW: Edit : Zeilen beachten.
 
Das dürfte daran liegen, dass der Inplace-Editor des StringGrids ein Singleline-Edit ist. In einem Edit wird ja auch kein Zeilenumbruch dargestellt.

p80286 25. Mai 2011 10:05

AW: Edit : Zeilen beachten.
 
Kann man da nichts tricksen, sodaß es zumindestens mehrzeilig aussieht?

Gruß
K-H

sHoXx 25. Mai 2011 10:08

AW: Edit : Zeilen beachten.
 
im Stringgrid?

dann sagste halt statt #13#10 soll er in das näcshte feld schreiben

Coffeecoder 25. Mai 2011 10:16

AW: Edit : Zeilen beachten.
 
Zitat:

Zitat von p80286 (Beitrag 1102779)
Kann man da nichts tricksen, sodaß es zumindestens mehrzeilig aussieht?

Guck mal hier

p80286 25. Mai 2011 11:27

AW: Edit : Zeilen beachten.
 
Das isses!
Danke!
K-H

himitsu 25. Mai 2011 13:38

AW: Edit : Zeilen beachten.
 
Jupp, das funktioniert nur dort, wo auch der Steuercode entsprechend ausgewertet wird. :stupid:
(welches die Zeichenroutinen des StringGrid und des TEdit nicht machen)

Um das zu ändern müßte man die entsprechenden Stellen entsprechend ändern/erweitern.

implementation 25. Mai 2011 14:23

AW: Edit : Zeilen beachten.
 
Die Entertaste als Taste an sich hat #13. In der Eigenschaft 'Text' (und auch in Dateien) steht der Zeilenumbruch aber als Abfolge #13#10 drin.
#13 = Carriage Return (CR) = Wagenrücklauf -> bewirkt, dass der Cursor wieder am Anfang der Zeile steht
#10 = Line Feed (LF) = Zeilenvorschub -> versetzt den Cursor eine Zeile weiter nach unten

Die Abfolge #13#10 kommt nur in Windows und DOS vor, in Linux schreibt man nur #10 und in Mac OS nur #13. Das aber nur so als Nebeninformation, ist jetzt für dich eher unwichtig.

Für dich wird es vermutlich einfacher, die Eigenschaft 'Lines' zu nehmen:
Delphi-Quellcode:
Memo1.Lines[0] // erste Zeile
Memo1.Lines[1] // zweite Zeile usw.

Memo1.Text // ganzer Text
Memo1.Lines.Text // auch ganzer Text


// macht etwas mit jeder Zeile einzeln
for i := 0 to Memo1.Lines.Count-1 do
begin
  TuWasMit( Memo1.Lines[i] );
end;
[Edit1]
Ups, ich hätte die andern Seiten noch lesen sollen :oops:

[Edit2]
Danke, DeddyH!

DeddyH 25. Mai 2011 14:24

AW: Edit : Zeilen beachten.
 
Aber bitte nur bis Count - 1, die Zeilen sind 0-indiziert, d.h. die letzte Zeile hat den Index Count - 1.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:19 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