Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fenster erscheinen und wieder verschwinden lassen (https://www.delphipraxis.net/102378-fenster-erscheinen-und-wieder-verschwinden-lassen.html)

florpp 27. Okt 2007 12:02


Fenster erscheinen und wieder verschwinden lassen
 
Delphi-Quellcode:
//Globale variablen
var
  Form5: TForm5;
  b: integer;
  c: integer;
  d: integer;
//Globale variablen

procedure TForm5.Timer1Timer(Sender: TObject);//Timer2 Intervall: 5000
  begin
  d := 1;
  end;

procedure TForm5.FormCreate(Sender: TObject);
  begin
  Form5.AlphaBlendValue := 0;
  b := 0;
  c := 0;
  d := 0;
  end;

procedure TForm5.Timer2Timer(Sender: TObject);//Timer2 Intervall: 100
  begin
  if d = 0 then
    begin
    repeat
    if c = 0 then
      begin
      Form5.AlphaBlendValue := b;
      if b = 254 then
        begin
        c := 1;
        end;
      b := b +1;
      end;
    until b = 255;
    end;
  if d = 1 then
    begin
    repeat
    Form5.AlphaBlendValue := b;
    b := b - 1;
    if b = 1 then
      begin
      Form5.Close;
      d := 2;
      end;
    until b = 0;
    end;

  end;
:arrow: Der Quellcode sollte ein Fenster (Form5) erscheinen und wieder verschwinden lassen,
:arrow: das klappt auch, aber kurze Zeit danach hängt sich das Programm auf.

:coder2: Woran liegt das???

DeddyH 27. Okt 2007 12:04

Re: Fenster erscheinen und wieder verschwinden lassen
 
Schleifen in einem Timer-Event sind irgendwie doppelt gemoppelt, findest Du nicht?

florpp 27. Okt 2007 12:07

Re: Fenster erscheinen und wieder verschwinden lassen
 
Hm... Und wie soll ich das anders machen?

bundy 27. Okt 2007 12:11

Re: Fenster erscheinen und wieder verschwinden lassen
 
Was hat der Timer1 für einen Sinn ?

florpp 27. Okt 2007 12:14

Re: Fenster erscheinen und wieder verschwinden lassen
 
Das fenster sollte erscheinen und sobald Timer1 abgelaufen ist sollte es wieder verschwinden.

DeddyH 27. Okt 2007 12:15

Re: Fenster erscheinen und wieder verschwinden lassen
 
Schnell zusammengeschrieben:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
    aVal: byte;
    ascending: Boolean;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  aVal := 0;
  ascending := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if aVal = MAXBYTE then
    ascending := false;
  if ascending then
    inc(aVal,5)
  else
    dec(aVal,5);
  AlphaBlendValue := aVal;
  if aVal = 0 then
    Close;
end;

end.
Spiel halt mal ein wenig mit den Werten.

florpp 27. Okt 2007 12:16

Re: Fenster erscheinen und wieder verschwinden lassen
 
:thumb: Ok danke

bundy 27. Okt 2007 12:26

Re: Fenster erscheinen und wieder verschwinden lassen
 
Hmm zu langsam....
aber ich post es.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  ticker:integer;
  Flag:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
AlphaBlendValue:=0;
ticker:=0;
Flag:=0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
if (Flag = 0) then
begin
  Form1.AlphaBlendValue:= ticker ;
  Inc(ticker);
end;
if ticker <= 0   then Flag := 0;
if ticker >= 255 then Flag := 1;
if (Flag=1) then
begin
    Form1.AlphaBlendValue:= ticker ;
    dec(ticker);
end;


end;

end.

florpp 27. Okt 2007 13:16

Re: Fenster erscheinen und wieder verschwinden lassen
 
:thumb: Du bekommst auch ein bisschen dank... :lol:

rawsoul 27. Okt 2007 13:17

Re: Fenster erscheinen und wieder verschwinden lassen
 
Hier mal meine Notifier-Popup-Version, vielleicht kann ja wer etwas damit anfangen ;)

Delphi-Quellcode:
var
  Form1: TForm1;
  showpopup:boolean = false;
  time:integer = 0;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  form1.left:=screen.width-form1.width;
  form1.top:=screen.Height-28;
  form1.Height:=0;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if showpopup=true then
    if form1.height<50 then
      begin
        form1.height:=form1.Height+5;
        form1.top:=form1.top-5;
      end else
    else
      if form1.height>0 then
        begin
          form1.Height:=form1.height-5;
          form1.Top:=form1.top+5;
        end;
  inc(time);
  if time=1000 then
    begin
      showpopup:=not showpopup;
      time:=0;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  showpopup:=false;
  time:=0;
end;
//Edit: aufgeräumt x_X


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz