AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi [Synedit] markierten text bei Tab nicht löschen

[Synedit] markierten text bei Tab nicht löschen

Ein Thema von n0b0dy · begonnen am 18. Sep 2005 · letzter Beitrag vom 18. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2   
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#1

[Synedit] markierten text bei Tab nicht löschen

  Alt 18. Sep 2005, 01:28
huhu ihr alle

habe mal ne kleine frage:
undzwar möchte ich im Synedit auf die Tab-Taste reagieren. Also wenn ein Text markiert ist, und jemand klickt auf Tab soll zB eine Message erscheinen. habe das im OnKeyPress gemacht.

Delphi-Quellcode:
 if (Key = vk_Tab) and (Synedit.SelLength > 0) then
  ShowMessage('huhu DP');
das problem ist aber, das nach anzeige der Message der markierte Text gelöscht wird... bzw mit einem Tab überschrieben.... wie das halt nun mal überall so ist.

Wie kann ich das denn verhindern?
Gruß Fabi
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: [Synedit] markierten text bei Tab nicht löschen

  Alt 18. Sep 2005, 03:32
Das weiss der Wind

Ich würde speichern, was markiert ist und nach dem TAB-drücken wieder reinschreiben (Am Ende wieder das Gleiche markieren). Vor dem Reinschreiben halt Showmessage oder GiveMassage .

PS: Ich drüfte nun bekannt sein für schlechte, aber funktionierende Lösungen (das liegt wohl an meinem Wissensstand bei Delphi, der nur geringfügig über den eine Kartoffel hinausragt )

edit: Ich weiß allerdings nicht ob das so funktionieren könnte (kann im moment nicht testen), aber vielleicht hilft es ja.
mfg zecke
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: [Synedit] markierten text bei Tab nicht löschen

  Alt 18. Sep 2005, 08:17
Hai l0b0dy,
Zitat von n0b0dy:
Wie kann ich das denn verhindern?
Du hast einen kleinen (denk)fehler in deinem Code
Nach dem abarbeiten der OnKeyPress/OnKeyDown Methoden wird die gedrückte Taste trotzdem von dem Control verarbeitet. Bei dir bedeutet dies:
  • Aufrufen deiner OnKeyPress-Methode
  • Diese abarbeiten
  • Das Char welches in der Variablen Key steht an das Controll übergeben
  • Das Controll arbeitet weiter

Du musst also nur den Wert für Key ändern nachdem Du deine IF-Abfrage gemacht hast:

Delphi-Quellcode:
procedure TForm1.SynEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Key = Char(Vk_Tab)) and (Synedit1.SelLength > 0) then
  begin
    ShowMessage('huhu DP');
    Key := #0;
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#4

Re: [Synedit] markierten text bei Tab nicht löschen

  Alt 18. Sep 2005, 11:55
ach Sharky,

natürlich!!! hab das total vergessen.
Gruß Fabi
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#5

Re: [Synedit] markierten text bei Tab nicht löschen

  Alt 18. Sep 2005, 12:17
hm

also irgendwie passiert nun überhauptnichts, wenn ich was markiert habe und auf Tab klicke...

Scheinbar wird garnicht auf

if Key = Char(VK_TAB) then reagiert. denn wenn ich dsa alleine stelle und auf Tab drücke passiert ebenso nichts...

Was ist denn falsch? Bzw mach ich was falsch?

Also in OnKeypress und dann dieser Code oder?
Gruß Fabi
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: [Synedit] markierten text bei Tab nicht löschen

  Alt 18. Sep 2005, 12:46
Hai n0b0dy,

hast Du bei deinem SynEdit auch .WantTabs := True; eingestellt?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#7

Re: [Synedit] markierten text bei Tab nicht löschen

  Alt 18. Sep 2005, 13:02
joa hab ich.
geht nicht wenn an oder wenns aus ist...
Gruß Fabi
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#8

Re: [Synedit] markierten text bei Tab nicht löschen

  Alt 18. Sep 2005, 13:05
habe soeben festgestelllt, dass das OnKeyPress überhaupt nicht ausgelöst wird, wenn man Tab drückt. habe mal spaßeshalber showmessage(key) reingeschrieben. funzt auch nicht...

wie wäre es denn mit .Keystrokes? Weiß aber nicht wie ich da was anwenden soll

[EDIT]
Habe nun herausgefunden wenn man bei .Keystrokes den Eintrag mit ecTab löscht, funzt das einwandfrei. mal schaun wie man sich das nun zu nutze machen kann wenns net klappt meld ich mich wieder


Ciao
Gruß Fabi
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#9

Re: [Synedit] markierten text bei Tab nicht löschen

  Alt 18. Sep 2005, 13:33
also hab bissle rumprobiert, aber eigetnlcih keine möglichkeit gefunden. denn man muss, damit es funktioniert diesen einen Keystroke entfernen. aber ich möchte den ja verwenden, nur nicht, wenn ein Text markiert ist...

Also kennt sich damit jmd. anderes besser aus?

Oder bin ich mit diesen .keystrokes auf nem völlig falschen weg?
Gruß Fabi
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#10

Re: [Synedit] markierten text bei Tab nicht löschen

  Alt 18. Sep 2005, 15:40
Zitat von n0b0dy:
... Oder bin ich mit diesen .keystrokes auf nem völlig falschen weg?
Wie? Was? Keystrokes? Was machst Du denn mit denen in diesem Fall? Die brauchen dich doch überhaupt nicht zu kümmern.
Einfach den Code von mir in das .OnKeyPress, WantTabs auf True und fertig ist der Lack.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:57 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