![]() |
Timer funktioniert nicht richtig nach Form Hide ?
Hallo
der Code funktioniert sehr gut nur wenn ich die Form2 erst mal aufrufe wenn ich aber die Form2 ausblende und wieder einblende, dann fügt der Timer das String nicht in Feld ! Er setzt nur den Cursor in Feld !
Delphi-Quellcode:
Der Timer wird beim Form2 Show natürlich wieder aktiviert, da ich "habe ich gemacht sehe" immer sehe
procedure TForm6.Timer1Timer(Sender: TObject);
begin try edit1.selectall; edit1.CopyToClipboard; Webbrowser1.OleObject.Document.All.Item('name').Focus; sleep(1000); Webbrowser1.ExecWB(OLECMDID_PASTE, 0); Timer1.Enabled:=false; ShowMessage('Habe ich gemacht'); except end; end; Warum fügt der Timer das String in Feld nicht? |
Re: Timer funktioniert nicht richtig nach Form Hide ?
Welches Intervall hat dein Timer denn???????????????
|
Re: Timer funktioniert nicht richtig nach Form Hide ?
Zitat:
Das Timer Interval habe ich verändert von 3000 bis 10000 aber es klappt nicht ! |
Re: Timer funktioniert nicht richtig nach Form Hide ?
bist du dir sicher das
Delphi-Quellcode:
procedure TForm6.Timer1Timer(Sender: TObject);
nicht noch aus einer anderen stelle des codes augerufen wird?? denn beim auführen wird ja der timer deaktiviert! |
Re: Timer funktioniert nicht richtig nach Form Hide ?
Ehrlich gesagt, verstehe ich deinen Code irgendwie gar nicht. WELCHER Befehl soll denn Wo etwas einsetzen?
|
Re: Timer funktioniert nicht richtig nach Form Hide ?
Anstelle den Text direkt in das Feld einzutragen, kopert er ihn in die Zwischenablage und schickt eine Benachrichtigung an den Browser, der ein paste durchführen soll: Webbrowser1.ExecWB(OLECMDID_PASTE, 0);
Das das ein vollkommen unnötiger Umweg ist der zudem noch Fehler verursachen kann ist eigentlich jedem klar. Warum Taktaky das dennoch so machen will erschliesst sich mir nicht, aber wenn er es so will dann soll er halt gucken wie er es hinbekommt. |
Re: Timer funktioniert nicht richtig nach Form Hide ?
Ähhh, also Ziel ist den text des editfeldes ins Browserfenster zu bringen? Dazu kopiert er den Edittext in die Zwischenablage und lässt ihn dort vom Browser abholen. Richtig verstanden?
|
Re: Timer funktioniert nicht richtig nach Form Hide ?
So scheint es zu sein. Ja.
|
Re: Timer funktioniert nicht richtig nach Form Hide ?
Hihi, seltsam - danke! :hi:
|
Re: Timer funktioniert nicht richtig nach Form Hide ?
was auch noch nen bissel unschlüssig ist, warum er solch einen code in einen timer packt?? wofür das??
|
Re: Timer funktioniert nicht richtig nach Form Hide ?
den Code in Timer oder in einem Button ist nicht das Problem
Obwohl das Feld, wo ich den text einfügen will, den Cursor hat und drin blinkt aber das Button Senden wird schattiert ! Wer hat in diesem Fall den Focus?! Das Feld, wo der Cursor blinkt? Oder das Button, das schattiert wird ? :gruebel: hallo @Phoenix, das ist genau was ich hier mach oder?
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin edit1.SetFocus; sleep(100); edit1.selectall; sleep(100); edit1.CopyToClipboard; sleep(100); Webbrowser1.OleObject.Document.All.Item('name').Focus; Webbrowser1.ExecWB(OLECMDID_PASTE, 0); end; |
Re: Timer funktioniert nicht richtig nach Form Hide ?
Der Bneutzer wird sich freuen, wenn du ihm den Inhalt der Zwischenablage zerschiesst.
|
Re: Timer funktioniert nicht richtig nach Form Hide ?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Der Code oben in Button funktioniert nur einmal. ich muss das Programm beenden und wieder Starten, sonst läuft nicht Das Problem liegt an setfocus vermute ich, da das Button "Senden" wenn ich die Form2 als erste mal aufrufe, wo alles in Ordnung läuft, sieht nicht schattiert aus. Aber wenn ich die Form2, kurz ausblende mit Hide und wieder die Form mit Show einblende, dann läuft der Code nicht. Und wie gesagt der Button "Senden" bleibt immer schattiert, als wäre es, dass es den Focus hat ! |
Re: Timer funktioniert nicht richtig nach Form Hide ?
Dein Ansatz ist sehr wackelig, da die Sicherheits-Einstellungen je nach PC den Zugriff auf die Zwischenablage verhindern können.
Kurzes Googlen hat folgenden Link gebracht: ![]() Dort ist die Rede davon, über das Browser-Interface ein sog. "Region-Object" zu erzeugen, um damit gezielt Textmanipulationen vorzunehmen. Zugegeben, ich habe damit noch nichts getan, aber nun hast Du ein viel versprechendes neues Stichwort für Deine weiteren Bemühungen. |
Re: Timer funktioniert nicht richtig nach Form Hide ?
Liste der Anhänge anzeigen (Anzahl: 1)
>You could copy your variable to the clipboard and then use the webbrowser Execwb method to paste it into the document, but this may fail if the security settings prevent clipboard access.
Diese Idee funktioniert dann nicht immer?! Also bei mir wenn ich die html code in Webbrowser so lade : Webbrowser1.Navigate('c:\formular.htm'); Dann funktioniert immer Ich lade aber mein html code in Webbrowser von einem memo : LoadHTMLToWebbrowser(Webbrowser1,memo1.Lines); darum klappt mit dem Code nicht nach Hide der Form > Die Idee in dem Link, konnte ich nicht gut verstehen : > Try adding a reference in your bho to mshtml.dll and create a region object (this will be the insertion point where > the carrot is positioned or the current text selection) and then set the innerText property of the region with your > variable's contents. You should be able to test if the region is within a tag of a certain type or class (Textarea). hier ist my delphi Projekt : |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 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