Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Nicola - Novembre 26, 2015, 11:48:21 pm

Titolo: Timer1
Inserito da: Nicola - Novembre 26, 2015, 11:48:21 pm
Come suggerito su qualche altro post, per bypassare la conferma con 'ok' dello Showmessage, ho creato una form "a tempo":
Codice: [Seleziona]
unit UContoNonEsiste;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls;

type

  { TTfContoNonEsiste }

  TTfContoNonEsiste = class(TForm)
    BtnonEsiste: TButton;
    Timer1: TTimer;
    procedure FormShow(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  TfContoNonEsiste: TTfContoNonEsiste;

implementation

{$R *.lfm}

{ TTfContoNonEsiste }

procedure TTfContoNonEsiste.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
TfContoNonEsiste.Close;
end;

procedure TTfContoNonEsiste.FormShow(Sender: TObject);
begin
  timer1.Enabled := true;
end;

end.
Il problema è che qualsiasi valore io inserisca nella proprietà interval (ho provato con valori da 1000 a 30000!), la form mi rimane sullo schermo sempre lo stesso tempo, oltretutto troppo veloce, non riesco a leggere il messaggio.
Da cosa può dipendere?
Titolo: Re:Timer1
Inserito da: Diego1981 - Novembre 27, 2015, 10:55:48 am
Ciao Nicola
scusa ma perchè non usi la procedura ontimer?
c'è qualcosa che mi sfugge nel codice che hai scritto
ciauz
Titolo: Re:Timer1
Inserito da: Nicola - Novembre 27, 2015, 10:56:48 am
Ehm, perchè non so usarla  :-[, e perchè in un altro post avevo trovato questo.
Titolo: Re:Timer1
Inserito da: Diego1981 - Novembre 27, 2015, 11:05:49 am
una cosa molto spartana
1crei una nuova form e ci metti una label con il messaggio che vuoi
2dentro inserisci un timer ,cambia solo il tempo che vuoi che resti in vista
3all'evento ontimer (cioè allo scadere del tempo) metti un close;
giusto per fare una prova e capire ed ovviamente da aggiustare per le tue esigenze
ciauz
Titolo: Re:Timer1
Inserito da: Nicola - Novembre 27, 2015, 11:12:32 am
Codice: [Seleziona]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  form1.Close;
end;

in effetti ora al variare della proprietà Interval cambia anche il perdurare della form
grazie.
 ;D