TEdit und CPPWebbrowser
-
Hallo
Folgendes Problem:
In meiner Form befindet sich ein TEdit (innerhalb eines Panels) und darüber ein TCPPWebBrowser.
In manchen fällen kommt es vor, dass die aufgerufene Site den Cursor aus meinem TEdit nimmt und ihn in ein auf der WebSite implementiertes Edit-Feld setzt.
Habe schon sowas wie OnExit events beim Edit bzw Panel ausprobiert, allerdings erfolgt das nur wenn ich irgendwo hinklicke.
Wisst ihr eine Lösung?
Danke
-
OnMouseOut
oder
OnMouseMoveOut
-
Danke für die Antwort. Aber keines der beiden genannten oder ähnlichen Ereignisse in TEdit oder TPanel existiert.
Das Probelm ist auch nicht, ob die Maus vom TEdit oder vom TPanel weggeführt wird, sondern dass mir die aufgerufene Webpage im TCPPWebBrowser den Cursor aus dem TEdit einfach stiehlt.
Ich versuche mal weiter eine Lösung zu finden. Bin trotzdem dankbar für jede Hilfe.[ Dieser Beitrag wurde am 12.03.2003 um 14:11 Uhr von PCMan editiert. ]
-
mit Form->ActiveControl sollte das gehen.
J0
-
Hmmm...
Gibt es kein Event, welches auftritt wenn der Cursor weggenommen wir?
Mit Form->ActiveControl (laut Help) kann ich ja nur den Focus auf etwas setzen.
Mit nem Timer wäre das eine lösung: Beim OnDocumentComplete Event beim CppWebBrowser den Timer starten der nach 2 Sekunden den Cursor dort wieder hinsetzt. Aber das ist irgendwie eine Bauernlsöung.
Sonst noch Vorschläge?
-
Wenn ich das richtig seh', steuerst Du den CPPWebBrowser von 'aussen' an (aus dem Formular).
Vielleicht geht das:
- CPPWebBrowse->Enabled=false
- CPP..... ansteuern
- bei OnDocumentComplete wieder Enabled=true;???Solange der nicht Enabled ist, kann der Focus nicht hinschalten???
Dass der Focus in den Explorer schaltet, ist ja normal / i.a. erwuenscht (Wozu soll der sonst was anzeigen)
[ Dieser Beitrag wurde am 12.03.2003 um 21:24 Uhr von DerAltenburger editiert. ]
-
Danke für den Ratschlag, funktioniert interessantwerweise nicht, weil das, was du da geschrieben hast, ziemlich logisch ist.
Sobald OnDocumentComplete aufgerufen wird und der CPPWebBrowser wieder enabled wird, wird der Cursor aus dem TEdit in das Pageinterne EditField gesetzt - so, wie ich es nicht haben wollte.
-
@ PCman:
was spricht hiergegen?if (Form1->ActiveControl == Edit1) { //Blabla } else { //Blabla2 }
das müsste doch gehen
J0
Wenn die Lösung entweder fehl am Platz ist oder keine Komplettlösung erwünscht bitte snippen
-
Danko J0
Hm okay. Könntest du mir vielleicht auch sagen, welche Funktion dazu führen würde, dass der Cursor wieder zurrückgesetzt wird? Habe verscheidene gestestet, aber keine erfüllt ihre Funktion wie ich es gerne hätte.
Probiert habe ich bisher: TEdit->Show; SetFocus; SelectAll...
-
Hi PCMan
Also wenn der Explorer nicht enabled ist klappt das??? Schaltet erst nach Enabled=true den Focus?
Wenn das so ist, teste mal das:
1. Explorer disabled!
2. Lade Deine Wunschseite (Explorer bleibt disabled!!!)
3. Schalte Enabled=true von Form aus (mit ProbierButton!)(Vielleicht stoert der sich daran, dass OnDocumentComplete zu Explorer gehoert?; der Focusiert sich ev. dadurch selbst?)
Falls das hilft, dann:
bei Complete Message an Form und im Handler (DER FORM) Enabled=true setzen
PS: Is' blos so 'ne Idee
-
Hi DerAltenburger
Danke für Deine Bemühungen und bin Deinem Tipp gefolgt. Es ist folgendes passiert:
Der browser steuert eine Site an und wird direkt nach dem Navigate Aufruf disabled. Wenn die Site nun fertig geladen ist passiert folgendes: Der Cursor aus dem TEdit verschwindet. Wohin, das weiß ich nicht. Er ist aber auch nicht in der EditBox von der Site zu sehen. Enable ich mit dem Testbutton den Browser wieder bleibt das TEdit sowie das Edit auf der Site Cursor leer.
Würde ich nun bei OnDocumentComplete den Browser enablen hätte ich das gleiche Problem wie vorher: Der Cursor verschwindet aus dem TEdit und wechselt in die EditBox der Site.Allerdings möchte ich, dass der Cursor in meinem TEdit bleibt...
-
Nenn doch mal so eine URL, damit man das nachvollziehen kann.
-
Okay, es handelt sich dabei um die folgende URL: http://www.vokabeltrainer.pons.de/cgi-bin/wb/wb.pl?Richtung=DE&ID=30723poUYK5KyuP.AI
-
also den focus auf das Edit müsstest du mit
Edit1->SetFocus();
den focus geben können.und ich hab´s bisher immer so gemacht wenn ich bestimmten websites-edits den focus geben möchte, führe ich auf den Formular X Tabs aus (bis das feld docus hat).
J0
-
mit SetFocus habe ich es ebenfalls bereits probiert.
Mit den Tabs das klappt soweit nicht, weil er nur innerhalb der Site weiterspringt, und nicht aus der Form raus.
-
hmm ich habs so gelöst: ich hab die maus auf dem feld positioniert, linksklick aufgeführt, wieder zurückgesetzt. nicht so schön (ich bin sicher man kann irgendwie den klick simulieren, ohne maus zu positionieren!!!) aber es geht.
J0
-
aaaah. Das ist schonmal ne Idee.
Nur hab ich keine Ahnung wie man einen Klick simuliert. Steht aber vielleicht in der FAQ.