Autor Beitrag
Krumnix
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60

Win98,2000,XP
Delphi 7 Enterprise
BeitragVerfasst: Mo 01.08.05 17:13 
Moin.

Über die Suche hab ich nix gefunden.

Deswegen meine Frage mal hier:

Ich hab mehrere Texte, die ich in ein MemoFeld eintrage und dann speichern, bzw.
mir vorher auch anschauen kann.
Das schaff ich auch ohne Probleme *g.
Jedoch machen alle mir bekannten Befehle einen Zeilenumbruch ans Ende des
Eingefügten Textes.
Für die ersten Zeilen gewollt.
Jedoch suche ich jetzt einen Befehl, den ich benutzen kann für die letzte einzufügenden Zeile, der KEINEN Zeilenumbruch macht.

Gibs da einen oder was kann ich da machen??
Danke
ManuelGS
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 173

Win XP HE, Suse Linux
D6, D7, D2005 Personal
BeitragVerfasst: Mo 01.08.05 17:29 
hi!
vielleicht sowas:
ausblenden Delphi-Quelltext
1:
memo1.Lines[memo1.Lines.Count-1]:=memo1.lines[memo1.Lines.Count-1]+irgendeinstringx;					

Gruß, Manuel.

_________________
"Leben ist gänzlich Bühne und Spiel; so lerne denn spielen
und entsage dem Ernst - oder erdulde das Leid." - Palladas von Alexandria
Krumnix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60

Win98,2000,XP
Delphi 7 Enterprise
BeitragVerfasst: Di 02.08.05 09:55 
Nein. Leider nicht.

Das sollte so aussehen
ausblenden Quelltext
1:
2:
3:
Zeile 1
Zeile 2
Zeile 3


Aber es kommt so raus
ausblenden Quelltext
1:
2:
3:
4:
Zeile 1
Zeile 2
Zeile 3
Zeile 4 ohne Text


Das Problem dabei ist, das mein Memo-Feld nur für 3 Zeilen gedacht ist. Wenn ich aber
die drei Zeilen einfüge, springen die mir bekannten Befehle nach dem Einfügen eine
Zeile tiefer. Somit sieht man die erste Zeile nicht mehr. Das Memo-Feld is aber
soweit gesperrt, das man also nicht scrollen kann und auch keine Eingabe machen kann.
Und das ist mein Problem im Moment.....
noidic
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 851

Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
BeitragVerfasst: Di 02.08.05 09:58 
Moin,

ist am Ende immer eine leere Zeile, in jedem Fall? Dann isses ganz einfach, einfach die Letzte Zeile aus dem Memo löschen.

Gruß

noidic

_________________
Bravery calls my name in the sound of the wind in the night...
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Di 02.08.05 10:10 
Mhmm. Das Problem kenn' ich auch. Was spricht dagegen, dass du statt dem TMemo eine TListBox benutzt? Da kannst du genauso per TListBox.Add() Items hinzufügen. ;)
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 02.08.05 10:11 
Bei eier ListBox kann aber der Anwender nix reinschreiben, was vermutlich der Zweck sein soll. ;)
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Di 02.08.05 10:16 
user profile iconHeiko hat folgendes geschrieben:
Bei eier ListBox kann aber der Anwender nix reinschreiben, was vermutlich der Zweck sein soll. ;)

Hmm. Stimmt. Kommt drauf an, wie er's einträgt. :gruebel: Aber den Zeilenumbruch beim TMemo wird man nicht rausbekommen.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 02.08.05 10:19 
Mit einer if Abfrage ob die Zeile leer ist ja (beim zusammenstezten).
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Di 02.08.05 10:21 
user profile iconHeiko hat folgendes geschrieben:
Mit einer if Abfrage ob die Zeile leer ist ja (beim zusammenstezten).

Probier' mal die Zeile zu löschen. ;)
Krumnix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60

Win98,2000,XP
Delphi 7 Enterprise
BeitragVerfasst: Di 02.08.05 10:22 
Es ist so. Der Kunde will in ein EditFeld Daten eingeben.
Wenn das Feld ausgefüllt ist, also mehr als 30 Zeichen eingeben wurden,
soll sich ein "größers" Feld öffnen, mit max. 3 Zeilen.
In diesem Fall ein MemoFeld.
Das läuft auch ganz gut. Es kann nur weitere drei Zeilen eingeben, und wenn die voll sind, lösche ich einfach alle Tasteneingaben in dem Feld.....

Jetzt speichert der Kunde die Eingabe und öffnet sie später wieder. Die
Voraussetzung ist, das die Zeilen auch einzeln anzeigbar sind. Also speichere
ich sie auch einzeln ab und füge sie, wenn die wieder im dem Memo
komplett angezeigt werden sollen zusammen.
Und hier ist halt mein Problem.
Da "verschwindet" die erste Zeile sozusagen.

Ich hab schon versucht, den Cursor an die erste Stelle zu setzen, aber das Memo selbst ändert sich nicht. Nur der Cursor steht oben sozusagen unsichtbar.

Auch das löschen der letzten Zeile brachte irgendwie keinen Erfolg.

Hier mal mein jetziger Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
   if st = 0 then
    Memo1.Lines.Append(ww);
   if st = 1 then
    begin
     Memo1.Lines.Add(w1);
     Memo1.Lines.Add(z);
    end;
   if st = 2 then
    begin
     Memo1.Lines.Add(w1);
     Memo1.Lines.Add(w2);
     Memo1.Lines.Add(z);
    end;
   Memo1.SelStart := 0;
   Memo1.SetFocus;
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Di 02.08.05 10:30 
Häng' da jetzt einfach mal noch folgende Funktion dahinter:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function ZeilenumbruchLoeschen(aText: String): String;
var
i: Integer;
begin
Result := aText;
if Length(aText) > 1 then
  if aText[Length(aText)-1] + aText[Length(aText)] = Chr(13) + Chr(10then
    begin
    Result := '';
    for i := 1 to Length(aText) - 2 do
      Result := Result + aText[i];
    end;
end;


Aufruf so:
ausblenden Delphi-Quelltext
1:
Memo1.Text := ZeilenumbruchLoeschen(Memo1.Text);					


;)
Krumnix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 60

Win98,2000,XP
Delphi 7 Enterprise
BeitragVerfasst: Di 02.08.05 10:38 
Cool. Das klappt. Super. Danke *freu* :D
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Di 02.08.05 10:52 
user profile iconKrumnix hat folgendes geschrieben:
Cool. Das klappt. Super. Danke *freu* :D

Kein Problem. Wenn du noch wissen willst warum, kannste ja einfach schreiben. ;)
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 02.08.05 11:02 
user defined imageWeBsPaCe, du hättest mir ruhig sagen können, das es die Eigenschaft Text gibt. Ich hatte es immer mit Lines versucht.
StefanH
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1144

Win XP
D5 Standard, D7 Pers, D2005 Pers
BeitragVerfasst: Di 02.08.05 11:04 
user profile iconWeBsPaCe hat folgendes geschrieben:
Häng' da jetzt einfach mal noch folgende Funktion dahinter:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function ZeilenumbruchLoeschen(aText: String): String;
var
i: Integer;
begin
Result := aText;
if Length(aText) > 1 then
  if aText[Length(aText)-1] + aText[Length(aText)] = Chr(13) + Chr(10then
    begin
    Result := '';
    for i := 1 to Length(aText) - 2 do
      Result := Result + aText[i];
    end;
end;


also ich finde das hier viel schöner:
ausblenden Delphi-Quelltext
1:
2:
if aText[Length(aText)-1] + aText[Length(aText)] = Chr(13) + Chr(10then
  Result:= Copy(aText, 0, Length(aText)-2);


eventuell (wenn in der 3ten Zeile keine Steuerzeichen am Ende sind) würde es sogar ein Memo1.Text:= TrimRight(Memo1.Text) tun.

_________________
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach."(Edsger W. Dijkstra)
"Ich bin nicht von Sinnen, sondern ich rede wahre und vernünftige Worte." (Paulus)
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Di 02.08.05 11:05 
Hilfe... Jetzt gehen sie zu zweit auf mich los. user defined image Na, wenn ihr meint. :tongue:

Aber @Steve: Braucht man bei COPY keine Abfrage mehr, ob das Dingens überhaupt 2 Buchstaben hat? :gruebel:
StefanH
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1144

Win XP
D5 Standard, D7 Pers, D2005 Pers
BeitragVerfasst: Di 02.08.05 11:11 
user profile iconWeBsPaCe hat folgendes geschrieben:
Aber @Steve: Braucht man bei COPY keine Abfrage mehr, ob das Dingens überhaupt 2 Buchstaben hat? :gruebel:


mh.. ich hab halt dein komisches for dings umgeschrieben ;) (wieso kann man die Gedanken, die man sich beim post gemacht hat, nicht automatisch einfügen lassen? :twisted: :mrgreen: ) komplett sähe es so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function ZeilenumbruchLoeschen(aText: String): String;
begin
Result := aText;
if Length(aText) > 1 then
 if aText[Length(aText)-1] + aText[Length(aText)] = Chr(13) + Chr(10then
   Result:= Copy(aText, 0, Length(aText)-2);
end;


Edit: das nutzlose i entfernt[/delphi]

_________________
"Als es noch keine Computer gab, war das Programmieren noch relativ einfach."(Edsger W. Dijkstra)
"Ich bin nicht von Sinnen, sondern ich rede wahre und vernünftige Worte." (Paulus)


Zuletzt bearbeitet von StefanH am Di 02.08.05 11:26, insgesamt 3-mal bearbeitet
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 02.08.05 11:12 
Nein. Er kopiert dann das NICHTS, wenn nix da ist.
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Di 02.08.05 11:14 
user profile iconHeiko hat folgendes geschrieben:
Nein. Er kopiert dann das NICHTS, wenn nix da ist.

:rofl: Schade. Du hast dich zu spät lustig gemacht. :lol:

user profile iconStefanH hat folgendes geschrieben:
mh.. ich hab halt dein komisches for dings umgeschrieben

DAS IST NICHT KOMISCH. :motz: :tongue: Aber ich hab Recht gehabt. Da hat noch was gefehlt. Sonst hat irgendjemand mal nur einen Buchstaben und keinen Zeilenumbruch und schon ist die Violation da... :tongue:
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 02.08.05 11:24 
user profile iconWeBsPaCe hat folgendes geschrieben:
user profile iconHeiko hat folgendes geschrieben:
Nein. Er kopiert dann das NICHTS, wenn nix da ist.

:rofl: Schade. Du hast dich zu spät lustig gemacht. :lol:

Tja Thunderbird hat mich mal wieder verarscht. Es hat mir ein paar e-mails vorenthalten.