PDA

Vollständige Version anzeigen : Makierter Text in Variable übernehmen


roland-wolff
02.10.2002, 14:16
Hallo zusammen,

mal wieder ein kl. Problem

wie kann ich einen markierten Text in einem beliebigen Steuerelement eines Formulars in eine Variable übernehmen???

Oder beim Prozeduraufruf mit übergeben?

Vielen Dank für eure schnelle Hilfe ;-)

CU Roland

FrankH
02.10.2002, 19:18
Hallo Roland,

problematisch sehe ich das entsprechend erforderliche Ereignis, das die Übergabe startet. Mir fällt da nur ein "Bei Fokusverlust":


Option Compare Database
Dim strMarkierterText As String

Private Sub txtTextfeld_LostFocus()
strMarkierterText = Me.txtTextfeld.SelText
MsgBox strMarkierterText
End Sub


So würde es gehen.

Frank

Nouba
02.10.2002, 19:50
Hallo,

da der Fokus schon *verloren* wurde, fehlt meines Erachtens vor der Auswahl noch ein Me!txtTextfeld.SetFocus.

roland-wolff
02.10.2002, 19:58
Ja aber bei

SetFocus wird wiederum der ganze Inhalt des Feldes markiert!!

Dann kann ich nicht mit einem Teil des Inhaltes operieren.

Das Ereignis könnte doch eine F-Tasten-Kombi sein?

Oder fällt euch etwas besseres ein???

Grüße Roland

md
02.10.2002, 20:01
Hallo Roland!

Das Problem hatten wir schon hier: <a href="http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=68340" target="_blank"> teil der markierung in string schreiben?</a>

Grüße

MD

roland-wolff
02.10.2002, 20:19
Ich möchte nicht bei jedem Feld den Text in eine Variable schreiben wenn es den focus verliert. sondern bei einem Ereignis wie z.B. F-Taste oder Menüauswahl soll der marktierte Inhalt des aktiven Textfeldes kopiert werden.

Grüße Roland

md
02.10.2002, 20:49
Hallo Roland!

Das Problem ist dass die Markierung weg ist wenn Du irgenwo anders hinklickst. Deshalb muß die Markierung sofort zwischengespeichert werden wenn die Maustaste ( die gerade markiert hat ) nach oben geht oder das Ereignis vor verlassen des Felds eintritt. Und zwar in eine Variable im Deklarationsteil des Formulars die dann immer zur verfügung steht.
Test mal:
Formular, ein Textfeld Text0

Code im From:

Option Compare Database
Dim s As String

Private Sub Text0_Exit(Cancel As Integer)
s = Me.Text0.SelText

End Sub

Private Sub Text0_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
s = Me.Text0.SelText
'zum Kennenlernen:
'MsgBox s
End Sub

Für jede Idee mit Taste ab ect hast Du immer die letzte markierun in der Variablen s

MD

AWSW
02.10.2002, 21:12
Hallo,
also IMHO funktioniert der Code von Frank gar nicht so schlecht. Hier zum selber probieren: <a href="http://www.awsw.de/Forum/viewtopic.php?t=457" target="_blank">http://www.awsw.de/Forum/viewtopic.php?t=457</a>

HTH & Schönen Abend