Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi multiline-paste im edit feld (https://www.delphipraxis.net/26229-multiline-paste-im-edit-feld.html)

Beckman 20. Jul 2004 16:04


multiline-paste im edit feld
 
ich will mehrere lines ins edit feld posten, die dann hintereinader aufgefangen und verarbeitet werden.


ich habs bei onchange mit
if (pos(#13,edit1.text) > 0) or (pos(#10,edit1.text) > 0) then memo1.lines.add('shout loudly!');
versuhct, dabei wollt ich sehen, ob das so aufgefangen werden kann, aber scheinbar nich


ich wollte naemlich so, wie xchat2 oder mIRC das machen, die zeilenumbrueche in zb #1+#1 umwandeln und die einzelnen sachen nebeneinander reihen.

danachs bei onkeypress #13 eben von #1+#1 zu #1+#1 jeweils kopiert weiter basteln



hat sowas schon jemand gemacht?

weil google spuckt nich wirklich aus, wie man diese zeilenumbrueche auffangen koennte.


thanks

fkerber 29. Jul 2004 07:20

Re: multiline-paste im edit feld
 
Hi!

Wenn ich dich richtig verstanden habe, dann so:

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then Edit1.Text:=Edit1.Text+'#1+#1';
end;
Ciao fkerber

XHelp 29. Jul 2004 14:01

Re: multiline-paste im edit feld
 
Er meint bestimmt:

Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  i:integer;
  s:string;
begin
if key=13 then begin
  if GetAsyncKeyState(VK_RCONTROL)<>0 then begin
    Edit1.Text:=Edit1.Text+#1;
  end
  else begin
    s:=Edit1.Text;
    while pos(#1,s)>0 do begin
      i:=pos(#1,s);
      Memo1.Lines.Add(Copy(s,1,i-1));
      Delete(s,1,i);
    end;
    if Length(s)>0 then Memo1.Lines.Add(s);
  end;
end;
end;
Mit STRG+Enter machst du eine "neue zeile" und mit Enter liest du die einzelnen zeilen.

Luckie 29. Jul 2004 14:03

Re: multiline-paste im edit feld
 
Als Zusatzinfo: Ein Edit hat nur eine Zeile. In sofern glaube ich, dass das alles nicht funktieren wird. Man könnte überlegen, ob man ein Memo nimmt und das die Höhe einer Zeile gibst und das Scrollen unterbindet.

Beckman 29. Jul 2004 17:27

Re: multiline-paste im edit feld
 
ich muss jetzt rechner zampacken und auf ne lan. ich schau dann spaeter dein code genauer an.

ich hab das ganze jetzt mit nem richedit feld geloest


ich habs manuell getrennt zwischen strg+enter und enter und auf drei zeilen limitiert

aber jetzt faellt mir gerade auf, strg+enter ist schon ne vorgemachte funktion und auch wenn man '~accept-return' auf false setzt, funkt das strg+enter fuer newline.
das macht mir bisschen probs.
eventuell weiss jemand nen weg, wie ich das auch unterbinde, damit ich das manuell parsen kann. ich schau dann auf der lan weiter.


thansk mal soweit.


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