Avatar billede betatron Nybegynder
25. april 2003 - 17:00 Der er 3 kommentarer

Sletning af popups & StayOnTop

Jeg har lige 2 spørgsmål!

1) Jeg har lavet et program som starter op sammen med Windows (XP). Hvordan får jeg programmet til ALTID at være øverst. Jeg har sat FormStyle til fsStayOnTop, men når andre programmer også starter op sammen med Windows, ligger de sig oven på. Hvordan ordner jeg det?

2) Hvordan sletter jeg popups? Fx når jeg har mit program kørende og externe popups (dvs. popups som jeg ikke har lavet i delphi) kommer frem. Hvordan sletter jeg en bestem popup, som jeg kender ved navn. Og hvordan sletter jeg alle popups, uanset deres navn?
Avatar billede eht Nybegynder
25. april 2003 - 21:34 #1
svar til 1.

Her er to funktioner der kan kaldes med den ønskede form som parameter

Function SetTopMost(Frm:TForm):Boolean ;
Begin

  Result := SetWindowPos(Frm.Handle,HWND_TOPMOST,
                          Frm.Left,Frm.Top,Frm.Width,Frm.Height,
                          SWP_SHOWWINDOW);
  Frm.Update ;
End;
Function NotSetTopMost(Frm:TForm):Boolean ;
Begin
  Result := SetWindowPos(Frm.Handle,HWND_NOTOPMOST,
                          Frm.Left,Frm.Top,Frm.Width,Frm.Height,
                          SWP_SHOWWINDOW);
  Frm.Update ;
End;
Avatar billede betatron Nybegynder
26. april 2003 - 12:05 #2
Jeg er stadig en lidt noobie, så jeg ved ikke helt hvordan jeg skal kalde de 2 funktioner??
Avatar billede eht Nybegynder
26. april 2003 - 12:40 #3
Hvis du vil have programmet til at være øvers fra start gør du følgende:
Function NotSetTopMost(Frm:TForm):Boolean ;
Begin
  Result := SetWindowPos(Frm.Handle,HWND_NOTOPMOST,
                          Frm.Left,Frm.Top,Frm.Width,Frm.Height,
                          SWP_SHOWWINDOW);
  Frm.Update ;
End;

Function SetTopMost(Frm:TForm):Boolean ;
Begin

  Result := SetWindowPos(Frm.Handle,HWND_TOPMOST,
                          Frm.Left,Frm.Top,Frm.Width,Frm.Height,
                          SWP_SHOWWINDOW);
  Frm.Update ;
End;

procedure TForm1.FormCreate(Sender: TObject);
begin
SetTopMost(Form1)://du bestemmer at det er Form1 der skal være onTop
end;

den anden funktion bruger du på samme måde hvis programmet ikke mere skal "stayOnTop"

f.eks.

procedure TForm1.Button1Click(Sender: TObject);
begin
NotSetTopMost(Form1):
end;
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