Domanda

Ho TWebBrowser incorporato in un TForm. Ogni volta che si preme il tasto Alt della finestra del browser diventa bianco. Se mi trascina la forma intorno ad esso ridisegna correttamente.

Quello che sto facendo male?

Ho DevExpress Bar e Griglia Quantum se quello che conta?

Io uso Delphi 2010 e Windows 7 e XP SP2. versione di IE è 7 e 8. riproducibile su tutti.

Prima di premere Alt: Prima di premere il tasto Alt

Dopo aver premuto Alt:

Dopo aver premuto Alt

ho risolto facendo usnig quanto segue:

procedure TMainForm.WndProc(var Message: TMessage);
begin
  inherited WndProc(Message);
  if Message.Msg = WM_UPDATEUISTATE then
  begin
    if Assigned(ProblematicWebBrowser) then
      ProblematicWebBrowser.Repaint;
  end;
end;
È stato utile?

Soluzione

non dire quale versione di Delphi che si sta utilizzando, quale versione di Windows che si sta utilizzando, o quale versione di IE è stato installato, che è ciò TWebBrowser avvolge . (Come nota generale, perché sei un nuovo utente qui, si ha realmente bisogno per fornire maggiori informazioni quando si chiede una domanda come questa finta che fosse un utente del software segnalato il bug -. Che ci si butta le mani e dire " Bah, non riprodotto. Perché non possono dirmi che cosa stanno facendo?" Lo stesso vale per noi quando leggendo la tua domanda.)

Ma, detto questo, il fatto che svanisce quando si preme il tasto Alt è un suggerimento. Windows ha un opzione per nascondere i tasti di scelta rapida (il marchio di sottolineatura, come il sottolineato F su un menu File) fino a quando l'utente preme il tasto Alt. Quando lo fa, i comandi vengono inviati a WM_DRAWITEM messaggio che indica qualcosa è cambiato. Vedi anche WM_CHANGEUISTATE .

Ci sono stati errori nelle versioni precedenti di Delphi movimentazione questo (vedi questo esempio bug ) tra cui un bug per cui controlli completamente svanirono quando l'Alt tasto è stato premuto . TWebBrowser non è elencato in tale voce di controllo di qualità, ma è molto probabile questa è influenzata.

Quindi la mia ipotesi è:

  • Stai utilizzando Delphi 7 o versioni precedenti
  • Si sta utilizzando XP o superiore, e in esecuzione tema
  • Si sta incontrando questo bug , che sta interessando sia il Controllo TWebBrowser o un genitore di esso

Soluzione: aggiornamento Delphi o applicare la correzione elencati la voce di controllo di qualità .

Altri suggerimenti

FWIW, con un modulo plain vanilla con una TWebBrowser in D2010, premendo Alt non ha effetto sul display del browser web.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top