AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringList => Anordnung der Einträge

Ein Thema von Tommy1988 · begonnen am 16. Nov 2007 · letzter Beitrag vom 17. Nov 2007
Antwort Antwort
Seite 3 von 3     123   
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#21

Re: TStringList => Anordnung der Einträge

  Alt 16. Nov 2007, 23:11
Insert('CDE', text, CurPosition) , denn +3 ist doch schon im Nirvana
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#22

Re: TStringList => Anordnung der Einträge

  Alt 16. Nov 2007, 23:16
Delphi-Quellcode:
if Copy(SynMemo1.Text, CurPosition-2, 3) = 'ABCthen // ****
Insert('CDE', text, CurPosition);
Ich hab den total falschen Ansatz

Das klappt alles nicht ..
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#23

Re: TStringList => Anordnung der Einträge

  Alt 16. Nov 2007, 23:19
Lass dir doch mal Copy(SynMemo1.Text, CurPosition-2, 3) in ein Label oder Caption schreiben, was da genau drinsteht, und mal anstelle von Insert einfach nur Memo.Text := Memo.Text+'DEF'.
Und vielleicht noch Memo.Refresh aufrufen, falls nix zu sehen ist.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#24

Re: TStringList => Anordnung der Einträge

  Alt 16. Nov 2007, 23:25
Wenn ich jetzt diesen Code nehme:

Delphi-Quellcode:
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) = 'ABCthen // ****
SynMemo1.Text := SynMemo1.Text+'DEF';
SynMemo1.Refresh;
end;
und direkt am Anfang "ABC" eintippe, passiert nix, gebe ich ein zusätzliches Leerzeichen ein, so kommt DEF.

Aber das ist es ja auch nicht
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#25

Re: TStringList => Anordnung der Einträge

  Alt 16. Nov 2007, 23:35
Delphi-Quellcode:
procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if copy(Memo1.Text,Memo1.SelStart-2,3)='ABCthen begin
    Memo1.Text:=Memo1.Text+'DEF';
    Memo1.SelStart:=Length(Memo1.Text);
  end;
end;
Das funzt bei mir mit nem normalen TMemo.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#26

Re: TStringList => Anordnung der Einträge

  Alt 17. Nov 2007, 00:56
Delphi-Quellcode:
Caption := '('+IntToStr(CurPosition)+') "'
+Copy(SynMemo1.Text, CurPosition-2, 3)+'"';

 if Copy(SynMemo1.Text, CurPosition-2, 3) = '[b]then
 begin
  SynMemo1.SelText := '[/b]';
 end;
Ds ist es soweit.

Es steht aber in einem unschönen TIMER .. von daher.. das Problem, ist, wenn es im KeyUp/Down steht, kommt es doppelt
  Mit Zitat antworten Zitat
17. Nov 2007, 07:17
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Ist ja eine Delphifrage
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#28

Re: TStringList => Anordnung der Einträge

  Alt 17. Nov 2007, 09:56
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 Memo1.SelStart:=Length(Memo1.Text); . Dann sind die drei Zeichen davor ja nicht 'ABC'
Also nach dem Anhängen gleich Cursor dahinter setzen.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 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