![]() |
memo und Zeilenanfangstring
hallo leute,
ich brauch mal eure hilfe. ich versuche in einem memo so eine art zeilenindexstring für die einzelnen Lines einzufügen komme aber einfach nicht klar damit. habe folgenden code benutzt. ich will das so haben, das wenn ich return druecke er in die naechste zeile springt, und den INDX string hinschreibt, so das ich dann direkt dahinter meine werte setzen kann. ich habe aber das problem, das er erst den wert schreibt, und dann in die naechste zeile springt,egal was ich auch versuche. habs auch schon im onkeydown event probiert und mit lines.add , alles ohne erfolg. waere dankbar für einen tip.
Delphi-Quellcode:
Gruß Richard
procedure TForm1.memo8KeyPress(Sender: TObject; var Key: Char);
begin if key=#13 then memo8.lines[memo8.lines.count]:='[INDX]'; end; //EDIT was mir noch aufgefallen ist, er tut den INDX string nur schreiben,wenn ich nix weiter in der vorherigen zeile eingetippt hab, ansonsten schreibt er gar nix *ratlos* |
Re: memo und Zeilenanfangstring
Hallo Richard,
das müsste eigentlich ungefähr so ablaufen - noch nicht ganz ausformuliert:
Delphi-Quellcode:
Grüße vom marabu
procedure TDemoForm.MemoKeyPress(Sender: TObject; var Key: Char);
const LinePrefix = '[INDX]'; var lineIndex: integer; begin if key = #13 then begin // damit es nicht nur am Ende klappt... lineIndex := Succ(CurrentLineNumber); // Kons-Tante einsetzen Memo.Lines.Insert(lineIndex, LinePrefix); // Eingabe-Cursor dahinter setzen SetCaretPosition(lineIndex, Length(LinePrefix)); // Tasten-Code als bearbeitet kennzeichnen key := #0; end; end; |
Re: memo und Zeilenanfangstring
Da fallen mir zwei Möglichkeiten ein, das Ganze gleich richtig zu erledigen. 1. Memo auf Listbox/Stringgrid umstellen. 2. Memo um die Eigenschaft Count selbst erweitern. Das mitgelieferte Memo ist eben meist einfach zu schwach.
Ah, "roter Kasten" :mrgreen: Das Insert fügt aber doch eine komplette Zeile ein, oder nicht ? |
Re: memo und Zeilenanfangstring
Oder so:
Delphi-Quellcode:
marabu
procedure TDemoForm.MemoKeyPress(Sender: TObject; var Key: Char);
const LinePrefix = '[INDX]'; begin if key = #13 then begin Memo.SelText := #13#10 + LinePrefix; Memo.SelStart := Memo.SelStart + Memo.SelLength; key := #0; end; end; @Hansa: Ja. Wo ist dein Code? *LässigFingerAufTischkanteAbrolle* |
Re: memo und Zeilenanfangstring
@marabu
super du , many THX deine zweite loesung funktioniert so wie ich das haben wollte. die erste ging bei mir leider nich, weil er mit setcarretpos irgentwas hatte. da hatt er immer gesagt undefinierter bezeichner. naja das nur der vollstaendigkeit halber ;) Ich danke dir, hab naehmlich n bisschen die zeit im nacken bei gelegheit trinken wir ma einen ;) bis denn, Richard |
Re: memo und Zeilenanfangstring
Wenn du die Frage noch bitte als "erledigt" kennzeichnen würdest, wäre das super, danke. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 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