![]() |
Wie kann man bei Lazarus in einem Memo alle Zeichen nebeneinander bekommen?
Liste der Anhänge anzeigen (Anzahl: 1)
Code:
Ich habe ein Programm geschrieben, in dem alle e bzw. E gegen z und Z ausgetauscht werden. Die Ausgabe erfolgt in einem Memo, was soweit auch alles klappt, zumindest, solange der Anfangstext nur eine Zeile lang ist. Sobald der Text mehr als eine Zeile einnimmt, schreibt das Programm einige Wortschnipsel untereinander ins Memo... und irgendwie rückwerts. Vllt hat einer von euch ja eine Idee, wie ich das hinbekommen kann, außer, dass ich die Zeile länger mache. Dankeschön schonmal im Vorraus und falls ihr weitere Infos wollt einfach fragen. Auf dem Bild seht ihr, was ich meine.
procedure TForm1.Button3Click(Sender: TObject);
var x:integer; y:string; begin label1.caption:=' '; wor:=memo1.text; s:=wor; memo1.clear; for i:=1 to length(s) do begin x:=ord(s[i]); begin If x=69 Then x:=90 Else If x=101 Then x:=122 Else x:=x end; y:=chr(x); Memo1.Lines.strings[0]:=memo1.lines.strings[0]+y; end; end |
AW: Wie kann man bei Lazarus in einem Memo alle Zeichen nebeneinander bekommen?
Bei Delphi hat das Memo ein Attribut WordWrap. Ist dieses = true, so macht das Memo, sobald eine Zeile "voll" ist, selbständig einen Zeilenumbruch.
Sollte es diese Attribut unter Lazarus auch geben, so setze es mal auf false, dann sollte der automatische Zeilenumbruch entfallen. |
AW: Wie kann man bei Lazarus in einem Memo alle Zeichen nebeneinander bekommen?
Also an sich klappt das so, aber das ist dann ja wieder komplett ohne Zeilenumbrüche und es soll aber alles untereinander geschrieben sein. Praktisch soll es wie bei einer ganz normalen Word Seite aussehen. Geht das irgendwie? Ansonsten nehm ich auch das. Danke dafür auf jeden Fall.
|
AW: Wie kann man bei Lazarus in einem Memo alle Zeichen nebeneinander bekommen?
Benutze doch einfach
![]()
Delphi-Quellcode:
Oder mit dem Text-String direkt (Achtung: Hier hat das erste zeichen den Index 1):
procedure TForm1.BtnE2ZClick(Sender: TObject);
Var i : Intgeger; begin For i := 0 To Length(MyMemo.Text) -1 Do Begin MyMemo.SelStart := i; MyMemo.SelLength := 1; If MyMemo.SelText = 'E' Then MyMemo.SelText := 'Z'; If MyMemo.SelText = 'e' Then MyMemo.SelText := 'z'; End; end;
Delphi-Quellcode:
Oder noch einfacher mit
procedure TForm1.BtnE2ZClick(Sender: TObject);
Var i : Intgeger; begin For i := 1 To Length(MyMemo.Text) Do Begin If MyMemo.Text[i] = 'E' MyMemo.Text[i] := 'Z'; If MyMemo.Text[i] = 'e' MyMemo.Text[i] := 'z'; End; end; ![]()
Delphi-Quellcode:
Ob's ReplaceStr unter Lazarus gibt, vermag ich jetzt nicht zu beantworten.
procedure TForm1.BtnE2ZClick(Sender: TObject);
Var i : Intgeger; begin MyMemo.Text := StrUtils.ReplaceStr(MyMemo.Text,'E','Z'); MyMemo.Text := StrUtils.ReplaceStr(MyMemo.Text,'e','z'); end; |
AW: Wie kann man bei Lazarus in einem Memo alle Zeichen nebeneinander bekommen?
Wenn Du immer in die Zeile 0 schreibst, ist das Ergebnis auch immer in der Zeile 0.
Mir ist nicht klar, was Du da machen willst:
Delphi-Quellcode:
Meinst Du eventuell sowas?
procedure TForm1.Button3Click(Sender: TObject);
var x:integer; y:string; begin label1.caption := ' '; wor := memo1.text; s := wor; memo1.clear; for i:=1 to length(s) do begin // wo ist i definiert? x:=ord(s[i]); begin If x=69 Then x:=90 Else If x=101 Then x:=122 Else x:=x; // sittlicher Nährwert? end; y:=chr(x); Memo1.Lines.strings[0]:=memo1.lines.strings[0]+y; end; end;
Delphi-Quellcode:
(nur hingedaddelt und nicht getestet)
procedure TForm1.Button3Click(Sender: TObject);
var x:integer; y:string; i, k : Integer; s : String; t : String; begin label1.caption := ' '; for k := 0 to memo1.lines.count - 1 do begin s := memo1.lines[k]; t := ''; for i := 1 to length(s) do begin x := ord(s[i]); If x = 69 Then x := 90 Else If x = 101 Then x := 122; t := t + chr(x); end; Memo1.Lines[k] := t; end; end; |
AW: Wie kann man bei Lazarus in einem Memo alle Zeichen nebeneinander bekommen?
Jetzt gehts, vielen vielen Dank. Ich weiß zwar nicht wirklich was mit dem
Code:
anzufangen, aber dafür mach ich das wohl auch noch nicht lange genug. Auf jeden Fall danke dafür.
memo1.lines.count - 1
|
AW: Wie kann man bei Lazarus in einem Memo alle Zeichen nebeneinander bekommen?
Wo ich gerade die ganzen superantworten hier sehe sollte ich vllt erwähnen, dass das nur schulisches Programmieren ist. Mit den ganzen Möglichkeiten von denen hier momentan die Rede ist, kann ich halt echt noch nicht viel anfangen, aber das kommt auch noch. Davon abgesehen, dass ich das mehr in meiner Freizeit mache als in der Schule und die Schüler gerade so mit den Edit Fenstern und Buttons umgehen können... Danke auf jeden Fall für eure Hilfe. Je mehr man macht, jemehr lernt an. Und vor allem immer Neues.
|
AW: Wie kann man bei Lazarus in einem Memo alle Zeichen nebeneinander bekommen?
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 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