![]() |
Memo zeilen Löschen
Hallo
Ich möchte das immer die ersten 4 Zeilen in meinem Memo Gelöscht werden . Wie bekomme ich das hin? Gruss Bernd |
Re: Memo zeilen Löschen
Delphi-Quellcode:
Also für die ersten 4 Zeilen:
Memo1.Lines.Delete( Index );
Delphi-Quellcode:
Memo1.Lines.Delete(0);
... Memo1.Lines.Delete(3); |
Re: Memo zeilen Löschen
Hallo,
sind 9 zeilen Sorry, klappt so net. es Bleiben noch einige zeilen stehen. Gruss Bernd |
Re: Memo zeilen Löschen
Zeilen 5..9 bleiben natürlich stehen. Also besser : for-Schleife.
|
Re: Memo zeilen Löschen
Hallo,
Danke für den Tip Klappt soweit. Wie bekomme ich den Text im Memo nach oben in die erste zeile ? Gruss Bernd |
Re: Memo zeilen Löschen
Was hältst du davon:
Delphi-Quellcode:
Was meinst du denn mit Text ?
var i,j: Integer; //j: die ersten j Zeilen löschen
begin For i:=1 to j do Memo1.Lines.Delete(0); end; Text bedeutet normal der ganze Inhalt des Memos (also mit #13#10 als Zeilenumbruch). Du meinst wahrscheinlich, du willst eine bestimmte Zeile als die erste Zeile verwenden, oder wie ist deine Frage zu verstehen? |
Re: Memo zeilen Löschen
Hallo Martin K,
Ja genauso meinte ich das. Gruss bernd |
Re: Memo zeilen Löschen
Das da wird ja wohl noch hinzukriegen sein. 8) Die Form hat ein Memo und einen Button. Das Memo wird im OI vorbesetzt, siehe DFM. Bei jedem Drücken des Buttons verschwinden die ersten beiden Zeilen aus dem Memo und der Rest rutscht nach oben.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Lines.Delete(0); Memo1.Lines.Delete(1); end; end.
Delphi-Quellcode:
object Form1: TForm1 // Form als Text
Left = 232 Top = 103 Width = 696 Height = 480 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object Memo1: TMemo Left = 200 Top = 128 Width = 185 Height = 89 Lines.Strings = ( 'Memo1' '2' '3' '4' '5' '6' '7' '8') ScrollBars = ssVertical TabOrder = 0 end object Button1: TButton Left = 112 Top = 328 Width = 75 Height = 25 Caption = 'Button1' TabOrder = 1 OnClick = Button1Click end end |
Re: Memo zeilen Löschen
Also, falls es das ist, was du suchst:
Eine bestimmte Zeile x aus Memo1 von der alten Stelle entfernen, und als erste Zeile verwenden (die erste Zeile wird dann natürlich zur zweiten):
Delphi-Quellcode:
So müsste es gehen ...
//x: Zeile x löschen und als erste Zeile einfügen (Achtung: erste Zeile: x=0, zweite Zeile: x=1, usw.)
var x: Integer; s: String; begin s:=Memo1.Lines[x]; Memo1.Lines.Delete(x); Memo1.Lines.Insert(0,s); end; |
Re: Memo zeilen Löschen
Zitat:
Zitat:
Nach dem aufruf von .Delete(0) wird die erste Zeile gelöscht und alle anderen rücken eins nach oben. Dann wird durch .Delete(1) die zweite Zeile gelöscht welche zuvor ja die dritte war.
Code:
EDIT nach Hinweiss von MaBuSE
_ .Lines.Delete(0) .Lindes.Delete(1)
eins zwei zwei zwei drei vier drei vier fünf vier fünf fünf |
Re: Memo zeilen Löschen
Zitat:
Zitat:
Wenn die 1. Zeile gelöscht wird, dann "rückt" der andere Text nach. In der 1. Zeile steht nun die 2. Zeile (Die 1. ist ja gelöscht worden) Wenn man nun die 2. Zeile löscht, wird ja die 3. Zeile entfernt (Die nun an 2. Stelle steht). Es muss also noch mal die 1. Zeile gelöscht werden. Martin hat es richtig gemacht: Zitat:
Alternativ könnte man auch von hinten nach vorne löschen, dann kann man durchaus auf die Einzelnen Zeilen zugreifen, da dann das "nachrücken" ohne Belang ist.
Delphi-Quellcode:
oder
...
Memo1.Lines.Delete(3); Memo1.Lines.Delete(2); Memo1.Lines.Delete(1); Memo1.Lines.Delete(0); ...
Delphi-Quellcode:
Ich bevorzuge aber den Lösungsansatz von Martin.
...
for i downto 3 to 0 do Memo1.Lines.Delete(i); ... |
Re: Memo zeilen Löschen
Zitat:
Ich habe gar nicht gesehen, das Du auch das angesprochen hast :-) Aber Du wolltest wohl das schreiben:
Code:
_ .Lines.Delete(0) .Lines.Delete(1)
eins zwei [b]zwei[/b] zwei drei vier drei vier fünf vier fünf fünf |
Re: Memo zeilen Löschen
Zitat:
|
Re: Memo zeilen Löschen
Zitat:
|
Re: Memo zeilen Löschen
Hallo @All,
Danke für eure vielen Antworten . Gruss Bernd |
Re: Memo zeilen Löschen
Zitat:
@Bernd29bln: Ich hoffe, deine Fragen sind jetzt auch beantwortet. Kommst du mit den Codes klar? |
Re: Memo zeilen Löschen
Hallo Martin K,
Ja Klar, habs hinbekommen und vielen Dank an Euch alle :thumb: Gruss Bernd |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 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