![]() |
Problem mit Fokus auf Listbox nach Timerevent
Hallo zusammen,
ich bin neu hier im Forum und habe auch direkt eine Frage: Ich habe auf meinem Formular eine Listbox und einen Timer, der alle 5 Sekunden den Inhalt der Listbox aktualisiert. Mein Problem ist, dass nach dem Aktualisierungsvorgang durch den Timer der Fokus immer auf der ListBox, resp. auf dem Formular auf dem die Listbox ist liegt. Ich möchte allerdings, dass wenn ich ein weiteres Formular (oder ein anderes Programm) parallel laufen lasse, der Fokus auf diesem bleibt und nicht wieder auf das Formular mit der Listbox übergeht. Der Timer soll also nur den Inhalt der Listbox ändern ohne irgendetwas am Fokus zu ändern. Ich bin jetzt schon seit geraumer Zeit dabei eine Lösung zu suchen, ich hoffe nun hier Hilfe zu bekommen ;) |
Re: Problem mit Fokus auf Listbox nach Timerevent
Merk dir den letzten Fokus und setze in wieder nach dem die Listbox aktualisiert wurde.
|
Re: Problem mit Fokus auf Listbox nach Timerevent
Hallo :hi:
Ich kann dieses Fokus-Problem bei mir nicht reproduzieren. (2 Formulare, auf Form 1 eine Listbox mit Timer, Form 2 bleibt immer aktiv) |
Re: Problem mit Fokus auf Listbox nach Timerevent
@Toms: Vielleicht habe ich meine Ausgangsbedingungen nicht ausführlich genug geschildert, deshalb hier mal mein Code vom Timerevent:
Delphi-Quellcode:
Immer wenn das ausgeführt wird, verliert das momentan geöffnete Fenster (kann auch z.B.) ITunes oder der Windows-Explorer den Fokus und das Fenster mit der Listbox kommt in den Vordergrund.
procedure TfrmMain.tmrAktualisierenTimer(Sender: TObject);
var AKontaktStatus: array [1..10000] of string; i: integer; begin // Status der Kontakte abrufen for i:=1 to lstKontaktliste.Items.Count do begin webKontaktStatus.Navigate('http://localhost/status.php?id=' + AIDs[i]); Wait(frmMain.webKontaktStatus); case StrToInt((webKontaktStatus.Document as IHTMLDocument2).body.innerHTML) of 0: AKontaktStatus[i] := 'ON'; 1: AKontaktStatus[i] := 'N/A'; 2: AKontaktStatus[i] := 'OCC'; 3: AKontaktStatus[i] := 'OFF'; end; // of case end; // of for // Statusliste aktualisieren lstStatus.Clear; for i:=1 to lstKontaktliste.Items.Count do lstStatus.Items.Add(AKontaktStatus[i]); end; @Luckie: Wie gesagt, das Problem besteht ja auch mit Fenstern außerhalb meiner Anwendung. |
Re: Problem mit Fokus auf Listbox nach Timerevent
Das liegt aber nicht an der Listbox sondern am Webbrowser, welcher den Fokus stiehlt.
Empfehlung: Nimm falls möglich die Indy Komponenten anstatt TWebbrowser.
Delphi-Quellcode:
IdHTTP.Get('http://localhost/status.php?id=' + AIDs[i]);
|
Re: Problem mit Fokus auf Listbox nach Timerevent
Danke für die schnelle Hilfe, ich werde es so mal probieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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