Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Copy-Problem (https://www.delphipraxis.net/103791-copy-problem.html)

Tommy1988 21. Nov 2007 23:02


Copy-Problem
 
Guten Abend.. ich habe ein kleines Problem..

Folgender Code bewirkt, dass wenn ich eingegeben HABE automatisch hinten dran gehangen wird:
Delphi-Quellcode:
 if Copy(SynMemo1.Text, CurPosition-2, 3) = '[b]' then
 begin
  SynMemo1.SelText := '[/b]';
  SynMemo1.SelStart := CurPosition-4;
 end;
gehe ich mit dem cursor jetzt aber zwischen und und drücke ENTF
so sieht der Text folgendermaßen aus:
'/b>'

Was kann man dagegen machen?
Ich hab es schon so versucht:
Delphi-Quellcode:
 if (Copy(SynMemo1.Text, CurPosition-2, 3) = ' [b]')
 and (Copy(SynMemo1.Text, CurPosition-3, 4) <> '[/b]') then
 begin
  SynMemo1.SelText := '[/b]';
  SynMemo1.SelStart := CurPosition-4;
 end;
Wenn das 2. Copy also nicht [/b] ist soll da das [/b] eingefügt werden. Nur es klappt leider nicht :cry:

Achso, vielleicht sollte ich sagen, dass der Code in einer Extra Prozedur steht die beim
"SynMemo1Change" aufgerufen wird.

grenzgaenger 21. Nov 2007 23:34

Re: Copy-Problem
 
@Tommy1988: sorry, komm jetzt nicht mit... was für 'n copy ist denn das... das keinen index auf das gefundene zeichen zurückliefert....????? :gruebel: :gruebel: :gruebel: :gruebel: :gruebel: :gruebel: :gruebel: :gruebel:

Tommy1988 22. Nov 2007 00:18

Re: Copy-Problem
 
Zitat:

das keinen index auf das gefundene zeichen zurückliefert....?????
Keine Ahnung was Du meinst .. Sorry :wiejetzt:

Dani 22. Nov 2007 01:51

Re: Copy-Problem
 
Ich vermute mal, dass das Ereignis erst aufgerufen wird, nachdem sich der Text geändert hat. Du findest dann kein "[/b]", weil da nur noch ein "/b> steht.

DP-Maintenance 22. Nov 2007 13:36

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Langsam solltest du wissen, dass Delphi-Fragen NICHT hier her gehören. :?

Tommy1988 22. Nov 2007 16:49

Re: Copy-Problem
 
Zitat:

das keinen index auf das gefundene zeichen zurückliefert....?????
Was heißt das denn jetzt?

Zitat:

nachdem sich der Text geändert hat
Ich habe es schon anders verucht, klappt aber nicht.

Dani 22. Nov 2007 21:41

Re: Copy-Problem
 
Ich glaube grenzgaenger verwechselt copy mit pos oder so :mrgreen:

Jedenfalls könntest du noch versuchen, in OnKeyDown statt in OnChange die Tags zu ergänzen. Dort kannst du entscheiden, ob die gedrückte Taste ein ">" ist oder etwas Anderes.

dominikkv 23. Nov 2007 06:26

Re: Copy-Problem
 
oder du frägst ab ob entf gedrückt wurde :wink:

Tommy1988 23. Nov 2007 14:19

Re: Copy-Problem
 
Das Problem ist ja auch generell das, dass wenn ich
nach eine Leerstelle mache, und diese mit Backspace zurückziehe, wieder drangehangen wird, das liegt aber am OnChange. Nur ich wüsst nicht wie man das in einem anderem Event machen könnte.

Blackheart 23. Nov 2007 15:29

Re: Copy-Problem
 
Am einfachsten dürfte es doch sein zu prüfen ob hinter bereits ein steht.
Delphi-Quellcode:
procedure TForm1.Memo1Change(Sender: TObject);
begin
  if (Copy(Memo1.Text, Memo1.SelStart-2, 3) = '[b]') and not
  (Copy(Memo1.Text, Memo1.SelStart+1, 4) = '[/b]') then
begin
  Memo1.SelText := '[/b]';
  Memo1.SelStart := Memo1.SelStart-4;
end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 Uhr.
Seite 1 von 2  1 2      

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