![]() |
Re: TStringList => Anordnung der Einträge
Delphi-Quellcode:
, denn +3 ist doch schon im Nirvana :)
Insert('CDE', text, CurPosition)
|
Re: TStringList => Anordnung der Einträge
Delphi-Quellcode:
Ich hab den total falschen Ansatz :cry:
if Copy(SynMemo1.Text, CurPosition-2, 3) = 'ABC' then // ****
Insert('CDE', text, CurPosition); Das klappt alles nicht .. |
Re: TStringList => Anordnung der Einträge
Lass dir doch mal
Delphi-Quellcode:
in ein Label oder Caption schreiben, was da genau drinsteht, und mal anstelle von Insert einfach nur Memo.Text := Memo.Text+'DEF'.
Copy(SynMemo1.Text, CurPosition-2, 3)
Und vielleicht noch Memo.Refresh aufrufen, falls nix zu sehen ist. |
Re: TStringList => Anordnung der Einträge
Wenn ich jetzt diesen Code nehme:
Delphi-Quellcode:
und direkt am Anfang "ABC" eintippe, passiert nix, gebe ich ein zusätzliches Leerzeichen ein, so kommt DEF.
procedure TForm1.SynMemo1KeyPress(Sender: TObject; var Key: WideChar);
begin text := SynMemo1.Text; Ln := SynMemo1.CaretY; CurPosition := SendMessage(SynMemo1.handle,EM_LineIndex,Ln,0); CurPosition := SynMemo1.SelStart-CurPosition; Caption := '('+IntToStr(CurPosition)+') "' +Copy(SynMemo1.Text, CurPosition-2, 3)+'"'; // nur zum gucken if Copy(SynMemo1.Text, CurPosition-2, 3) = 'ABC' then // **** SynMemo1.Text := SynMemo1.Text+'DEF'; SynMemo1.Refresh; end; Aber das ist es ja auch nicht :? |
Re: TStringList => Anordnung der Einträge
Delphi-Quellcode:
Das funzt bei mir mit nem normalen TMemo.
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin if copy(Memo1.Text,Memo1.SelStart-2,3)='ABC' then begin Memo1.Text:=Memo1.Text+'DEF'; Memo1.SelStart:=Length(Memo1.Text); end; end; |
Re: TStringList => Anordnung der Einträge
Delphi-Quellcode:
Ds ist es soweit.
Caption := '('+IntToStr(CurPosition)+') "'
+Copy(SynMemo1.Text, CurPosition-2, 3)+'"'; if Copy(SynMemo1.Text, CurPosition-2, 3) = '[b]' then begin SynMemo1.SelText := '[/b]'; end; Es steht aber in einem unschönen TIMER .. von daher.. das Problem, ist, wenn es im KeyUp/Down steht, kommt es doppelt |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Ist ja eine Delphifrage |
Re: TStringList => Anordnung der Einträge
Dass es doppelt kommt, hat seine Ursache darin, dass bei Loslassen der Shift-Taste auch KeyUp ausgelöste wir, und das TMemo, brav wie es ist, hängt eben noch mal 'DEF' dran. Deshalb hab ich ja nach anhängen von 'DEF' auch gleich den Cursor dahinter gesetzt. Dann trifft die Bedingung nicht mehr zu und es passiert nix.
SelStart repräsentiert immer die Cursor-Position, wenn kein Text selectiert ist, daher
Delphi-Quellcode:
. Dann sind die drei Zeichen davor ja nicht 'ABC' ;)
Memo1.SelStart:=Length(Memo1.Text);
Also nach dem Anhängen gleich Cursor dahinter setzen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 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