Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Timer funktioniert nicht richtig nach Form Hide ? (https://www.delphipraxis.net/116183-timer-funktioniert-nicht-richtig-nach-form-hide.html)

taktaky 24. Jun 2008 19:43


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:
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;
Der Timer wird beim Form2 Show natürlich wieder aktiviert, da ich "habe ich gemacht sehe" immer sehe

Warum fügt der Timer das String in Feld nicht?

taaktaak 24. Jun 2008 20:01

Re: Timer funktioniert nicht richtig nach Form Hide ?
 
Welches Intervall hat dein Timer denn???????????????

taktaky 24. Jun 2008 20:04

Re: Timer funktioniert nicht richtig nach Form Hide ?
 
Zitat:

Zitat von taaktaak
Welches Intervall hat dein Timer denn???????????????

das habe ich am Anfang auch daran vermutet
Das Timer Interval habe ich verändert von 3000 bis 10000 aber es klappt nicht !

lbccaleb 24. Jun 2008 20:05

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!

taaktaak 24. Jun 2008 20:07

Re: Timer funktioniert nicht richtig nach Form Hide ?
 
Ehrlich gesagt, verstehe ich deinen Code irgendwie gar nicht. WELCHER Befehl soll denn Wo etwas einsetzen?

Phoenix 24. Jun 2008 20:22

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.

taaktaak 24. Jun 2008 20:32

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?

Phoenix 24. Jun 2008 20:33

Re: Timer funktioniert nicht richtig nach Form Hide ?
 
So scheint es zu sein. Ja.

taaktaak 24. Jun 2008 20:34

Re: Timer funktioniert nicht richtig nach Form Hide ?
 
Hihi, seltsam - danke! :hi:

lbccaleb 24. Jun 2008 20:54

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??

taktaky 24. Jun 2008 21:18

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;

Luckie 24. Jun 2008 21:42

Re: Timer funktioniert nicht richtig nach Form Hide ?
 
Der Bneutzer wird sich freuen, wenn du ihm den Inhalt der Zwischenablage zerschiesst.

taktaky 24. Jun 2008 21:48

Re: Timer funktioniert nicht richtig nach Form Hide ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Luckie
Der Bneutzer wird sich freuen, wenn du ihm den Inhalt der Zwischenablage zerschiesst.

Aber nicht in Hintergrund :wink:

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 !

Daniel 24. Jun 2008 21:55

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:
http://forums.microsoft.com/MSDN/Sho...23434&SiteID=1

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.

taktaky 24. Jun 2008 22:07

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