Delphi 5 - comando dopo taskbar

di il
25 risposte

Delphi 5 - comando dopo taskbar

Salve a tutti. richiesta di aiuto:

clicco sul pulsante "hide on system tray".
l'applicazione si nasconde e appare l'icona nella system tray.
clicco sull'icona nella system tray.
l'applicazione si mostra ed esegue il comando:

procedure TForm1.FormShow(Sender: TObject);
begin
ShowMessage('ciao');
end;

-

clicco sul pulsante minimize delle BorderIcons.
l'applicazione si nasconde nella taskbar.
clicco sul pulsante nella taskbar per far apparire l'applicazione ...e quando appare vorrei far eseguire lo stesso comando.

25 Risposte

  • Re: Delphi 5 - comando dopo taskbar

    Ciao,

    se lo showmessage te lo fa al primo giro non vedo perchè non te lo debba fare anche nel secondo, mi sembra la stessa cosa che fai.

    Ciao.
  • Re: Delphi 5 - comando dopo taskbar

    Ciao,

    no, nel primo giro faccio click sull'icona nella system tray, nel secondo giro faccio click sul tasto (relativo alla mia applicazione) sulla taskbar.
  • Re: Delphi 5 - comando dopo taskbar

    Quindi sul primo può funzionare il "OnShow", mentre sul secondo forse bisogna lavorare su qualcosa tipo "SIZE_RESTORED" o altro.
    evidentemente il "minimize" non è un "hide".
  • Re: Delphi 5 - comando dopo taskbar

    gabbiano ha scritto:


    Quindi sul primo può funzionare il "OnShow", mentre sul secondo forse bisogna lavorare su qualcosa tipo "SIZE_RESTORED" o altro.
    evidentemente il "minimize" non è un "hide".
    Che io mi ricordo, almeno quando feci ai tempi un qualcosa del genere, il programma stava solo nella tray bar, prova eventualmente a spostare la showmessage nell'evento activate del form per vedere se cambia qualcosa.

    Ciao.
  • Re: Delphi 5 - comando dopo taskbar

    Il programma sta SOLO nella systemtray quando gli do il comando di nascondersi nella systemtray.
    e sta SOLO nella taskbar quando gli do il comando di nascondersi nella taskbar (usando la BorderIcon del minimize).

    provato già Activate ma non va
  • Re: Delphi 5 - comando dopo taskbar

    gabbiano ha scritto:


    Il programma sta SOLO nella systemtray quando gli do il comando di nascondersi nella systemtray.
    e sta SOLO nella taskbar quando gli do il comando di nascondersi nella taskbar (usando la BorderIcon del minimize).
    provato già Activate ma non va
    Se lo showmessage lo sposti nell'evento FormPaint dovrebbe funzionare.
  • Re: Delphi 5 - comando dopo taskbar

    Scusa ma non capisco bene cosa vuoi fare, prova ad esplicirarlo
  • Re: Delphi 5 - comando dopo taskbar

    Grande Doctorj, con FormPaint ha funzionato. grazie
  • Re: Delphi 5 - comando dopo taskbar

    Personalmente scrivere qualcosa nell'evento OnFormPaint, che non sia legato al disegno stesso della form, lo escluderei a priori.
    Come ha detto +m2+ se provi a raccontarci cosa vuoi fare forse qualche altra idea salta fuori.
  • Re: Delphi 5 - comando dopo taskbar

    Wolfen ha scritto:


    Personalmente scrivere qualcosa nell'evento OnFormPaint, che non sia legato al disegno stesso della form, lo escluderei a priori.
    Come ha detto +m2+ se provi a raccontarci cosa vuoi fare forse qualche altra idea salta fuori.
    Rispondo a gabbiano, personalmente ho dato la "soluzione" più facile che mi è venuta in mente, ma sono pienamente d'accordo con +m2+ e Wolfen nel dirti che magari non è la soluzione perfetta dato che potrebbe implicare altri comportamenti imprevedibili, il tutto detto senza sapere bene cosa vuoi fare e senza conoscere il tuo programma.

    Ciao.
  • Re: Delphi 5 - comando dopo taskbar

    gabbiano ha scritto:


    Quindi sul primo può funzionare il "OnShow", mentre sul secondo forse bisogna lavorare su qualcosa tipo "SIZE_RESTORED" o altro.
    evidentemente il "minimize" non è un "hide".
    Guarda che ci eri vicino. Io non userei onpaint a meno che non devi ridisegnare qualcosa sulla form

    Puoi catturare il messaggio di restore, come appunto avevi intuito.
    Per esempio così
    procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
    begin
      if (Message.CmdType and $FFF0 = SC_RESTORE) then
        ShowMessage('ciao');
      inherited;
    end;
  • Re: Delphi 5 - comando dopo taskbar

    Salve ragazzi, scusate la lunga assenza causa mamme ospedalate.
    infatti il FormPaint mi fa partire lo ShowMessage in ogni occasione in cui l'applicazione torna "on top" o comunque visibile dopo un'occultazione (cartelle, browser ecc).

    grazie f3rr0, hai colto nel segno.

    private
    { Private declarations }
    procedure WMSyscommand(var msg: TWmSysCommand); message WM_SYSCOMMAND;

    procedure TForm1.WMSyscommand(var msg: TWmSysCommand);
    begin
    if (msg.CmdType and $FFF0 = SC_RESTORE) then
    ShowMessage('ciao');
    inherited;
    end;
  • Re: Delphi 5 - comando dopo taskbar

    La F e il 3 purtroppo da una faccina idiota. proviamo così:

    grazie f 3 r r 0
  • Re: Delphi 5 - comando dopo taskbar

    Strana cosa, tra i WM_SYSCOMMAND esiste:

    SC_CLOSE, SC_CONTEXTHELP, SC_DEFAULT, SC_HSCROLL, SC_KEYMENU, SC_MAXIMIZE, SC_MINIMIZE, SC_MOUSEMENU, SC_MOVE, SC_RESTORE, SC_SIZE ecc ecc ecc

    ma non esiste un "SC_RESTOREFROMTASKBAR" (è un nome inventato da me come esempio), ovvero quando l'applicazione è minimizzata nella taskbar e poi la si fa riapparire cliccando sul pulsante sulla taskbar relativo all'applicazione.
Devi accedere o registrarti per scrivere nel forum
25 risposte