Form sempre on top

di il
3 risposte

Form sempre on top

Come al solito sto litigando con una “boiata”.

come posso fare per fare in modo che una finestra (di popup) sia sempre in primo piano, anche se ci sono altre app aperte?.

mettendo formstype stayontop  va in primo piano ma solo rispetto all' applicazione, non in primo piano rispetto a tutto.

ho provato anche con

SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
BringWindowToTop(handle);

ma questo sembra funzionare solo se mostro la finestra col comando showmodal, io non voglio che sia modale.

3 Risposte

  • Re: Form sempre on top

    Non è bella come soluzione ma è la prima che mi è venuta in mente.

    Imposti stayontop nella proprietà

    Crei un timer che esegua ogni tot millisecondi

    procedure TForm2.Timer1Timer(Sender: TObject);
    begin
      if (Visible) Then bringtofront;
    end;
    
  • Re: Form sempre on top

    24/04/2023 - dobby ha scritto:

    procedure TForm2.Timer1Timer(Sender: TObject);
    begin
      if (Visible) Then bringtofront;
    end;
    

    ho provato ma non sembra funzionare, o meglio, funziona solo rispetto alla applicazione delphi, ma si gli metto davanti un altra finestra di un altro programma resta in background comunque.

    Boh mi sembra strano non si possa fare, per esempio ce la funzione “sempre in primo piano” tra le impostazioni della finestra del task manager, possibile non si possa fare una cosa simile?

  • Re: Form sempre on top

    25/04/2023 - ziobacco ha scritto:


    ho provato ma non sembra funzionare, o meglio, funziona solo rispetto alla applicazione delphi, ma si gli metto davanti un altra finestra di un altro programma resta in background comunque.

    Hai provato a recuperare l'handle del desktop e impostare questo come “parent” (usando l'apposita API) della finestra da portare in primo piano?

    Vi sono altre soluzioni in questa pagina.

    Ciao! :)

Devi accedere o registrarti per scrivere nel forum
3 risposte