Vielen Dank, dass Du Dich mit meinem Prolem so beschäftigst!
Ich musste den Code etwas ändern, damit ich ihn unter D5 kompilieren konnte.
Das Problem ist immer noch da: Sobald ich etwas mit dem Edit "sende"
und dann etwas aus dem Webbrowser herauskopiere, und dann wieder mit dem Edit was sende, schluckt das ActivX-Control
sofort den Fokus.
Mein abgeänderter Code:
Delphi-Quellcode:
uses
ActiveX;
//MSHTML konnte er nicht finden
// Anfangs Zu einer leeren Seite navigieren
procedure TForm1.FormCreate(Sender: TObject);
begin
Webbrowser1.Navigate('
about:blank');
Lines:=TStringList.Create();
end;
// Zeilen HTML Code hinzufügen
procedure AddHTMLToWebbrowser(AWebBrowser: TWebBrowser; AHTMLCode: TStrings);
var
myDocument:OleVariant;
begin
if AWebBrowser.Document =
nil then AWebBrowser.Navigate('
about:blank');
myDocument:=AWebBrowser.Document;
myDocument.
Write(AHTMLCode.Text);
myDocument.Close;
end;
// OnKeyPress im Edit
procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13
then
begin
Key := #0;
Lines.add(Edit1.text + #10);
AddHTMLToWebbrowser(Webbrowser1,Lines);
end;
end;
initialization
OleInitialize(
nil);
finalization
OleUninitialize;
Also nochmal: der Fehler kommt zustande, wenn man
1. Etwas mit dem Edit sendet, indem man das Edit fokussiert, Text eingibt, und dann Enter drückt
2. Dann Text aus dem Webbrowser markiert bzw. herauskopiert
3. Dann mit der Maus den Fokus auf das Edit setzt, indem man es anklickt
4. Dann wieder etwas sendet (schwupp di wupp: der Fokus wurde dem Edit entzogen)
5. Dann wieder etwas sendet (Kann man nicht, ohne das man das Edit wieder selektiert...)
Hoffe ich habe das Problem jetzt etwas genauer geschildert
Henning D.