Avatar billede delphidaner Nybegynder
24. januar 2001 - 20:46 Der er 4 kommentarer og
1 løsning

Gennemtving OnEnter

Jeg har brug for at gennemtvinge en OnEnter event, når formen bliver vist, efter at have været \'hidden\'.

Det skal være den TButton, der har fokus (hvis nogen). Jeg har skrevet denne kode, men det virker ikke.

procedure TMainForm.FormShow(Sender: TObject);

var
  I: Word;
 
begin

  for I := 1 to ComponentCount do
    if Components[I - 1] is TButton then
      with Components[I - 1] as TButton do
        if Assigned(OnEnter) and Focused then
          OnEnter(Sender);

end;

Hvad er der galt?
Avatar billede hatecaps Nybegynder
24. januar 2001 - 21:14 #1
koden virker fint, forudsat at der en button både med fokus og med en assignet onEnter event. Prøv evt. at lægge mærke til hover fokus er når formen vises igen efter at have været gemt ;-)

ha\' det godt
hatecaps
Avatar billede delphidaner Nybegynder
25. januar 2001 - 07:42 #2
Det er underligt at det ikke virker ved mig. Selv om der er en button med en OnEnter event med fokus, så eksekveres event\'en ikke. Jeg kan heller ikke finde fejl i koden.

Hvad er hover fokus?
Avatar billede hatecaps Nybegynder
25. januar 2001 - 10:04 #3
hmm, jeg har kigget lidt mere på det, og fundet af at problemet er at det aktive komponent først får fokus EFTER onShow. Hvis du bruger en timer til udføre tjekket virker det fint. Alt efter hvor mange komponenter de har på formen bør 100-150 millisekunder virke fint. Og sæt timeren til enabled = false til at begynd med.

altså

procedure TForm1.FormShow(Sender: TObject);
begin
  timer2.enabled := true;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
var I: Word;
begin
  timer2.enabled := false;
  for I := 1 to ComponentCount do
  begin
    if Components[I - 1] is TButton then
    begin
      with Components[I - 1] as TButton do
      begin
        if focused then
        begin
          if Assigned(OnEnter) then
          begin
            OnEnter(Sender);
          end;
        end;
      end;
    end;
  end;
end;
Avatar billede delphidaner Nybegynder
25. januar 2001 - 11:15 #4
Okay, det er DET, der er problemet... Tak for hjælpen!
Avatar billede hatecaps Nybegynder
25. januar 2001 - 22:21 #5
Det var en fonøjelse :-)
specielt da jeg lærte noget selv samtidigt ;-)

ha\' det godt
hatecaps
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester