![]() |
Copy-Problem
Guten Abend.. ich habe ein kleines Problem..
Folgender Code bewirkt, dass wenn ich eingegeben HABE automatisch hinten dran gehangen wird:
Delphi-Quellcode:
gehe ich mit dem cursor jetzt aber zwischen und und drücke ENTF
if Copy(SynMemo1.Text, CurPosition-2, 3) = '[b]' then
begin SynMemo1.SelText := '[/b]'; SynMemo1.SelStart := CurPosition-4; end; so sieht der Text folgendermaßen aus: '/b>' Was kann man dagegen machen? Ich hab es schon so versucht:
Delphi-Quellcode:
Wenn das 2. Copy also nicht [/b] ist soll da das [/b] eingefügt werden. Nur es klappt leider nicht :cry:
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; Achso, vielleicht sollte ich sagen, dass der Code in einer Extra Prozedur steht die beim "SynMemo1Change" aufgerufen wird. |
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:
|
Re: Copy-Problem
Zitat:
|
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
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. :? |
Re: Copy-Problem
Zitat:
Zitat:
|
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. |
Re: Copy-Problem
oder du frägst ab ob entf gedrückt wurde :wink:
|
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. |
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; |
Re: Copy-Problem
Zitat:
Delphi-Quellcode:
;)
if Copy(SynMemo1.Text, CurPosition-2, 3) = '[b]' then
begin SynMemo1.SelText := '[/b]'; SynMemo1.SelStart := CurPosition-4; end; Andere Code, aber die selbe Funktion. Es ändert sich nichts, wenn man ENTF zwischen > und < drückt. |
Re: Copy-Problem
Getestet und für gut befunden ! :thumb:
Bei Mir funktionierts jedenfalls. |
Re: Copy-Problem
Ne, so meinte ich das nicht ..
hat man den Cursor zwischen und also da; >'<, und drückt ENTF, wird /b> hinten dran gehangen .. das wollte ich verhindern, nur ENTF zu unterdrücken ist nicht so gut. |
Re: Copy-Problem
Zitat:
Delphi-Quellcode:
[/b]
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> Genau das wird ja verhindert, aber Ich gebs auf ist wahrscheinlich zu schwer das mal zu testen. :gruebel: </b>') then begin Memo1.SelText := '
Delphi-Quellcode:
';
Memo1.SelStart := Memo1.SelStart-4; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 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