Autor Beitrag
chriss1988
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: Do 08.12.05 10:32 
als erstes ma guten morgen an ale

wie ihr aus der überschrift bestimmt schon gelesen habt möchte ich es hinbekommen das mein panel blink :roll: ,da er immoment nur nach links läuft und mir das ziemlich öde ist :eyecrazy: .

ich hab mal ein teil meines codes kopiert könnt ihr mir bei der sache ma bitte helfen, da in der hilfe von delphi5 leider net mehr drin steht.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm2.Timer1Timer(Sender: TObject);
begin
Timer1.Interval := 100;
  if panel1<> nil then
    panel1.Left := panel1.Left + 1;


naturlich soll der panel nur ne bestimmte zeit blinken und dan aufhörn z.B (5 ma blinken)
also brauch ich da auch en bissl hilfe

schon ma danke für jede antwort

mfg.
diddi


Moderiert von user profile iconGausi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 08.12.2005 um 10:29
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Do 08.12.05 10:47 
Rezept zum blinken lassen :

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
- variable zähler mit 0 initialisieren
- in den timer einbauen :
  - zähler = zähler +1
  - in den timer ne bedingung :
         - wenn panel.farbe = rot  dann
                panel.farbe = grün sonst
                panel.farbe = rot
  - und noch ne bedingung :
         - wenn zähler = 10 dann timer = aus



und dann musst du nor noch den timer starten und dein panel blinkt lustig in rot und grün
chriss1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: Do 08.12.05 10:52 
aha und nun bitte auf deutsch ich bin neu im programmieren
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Do 08.12.05 11:00 
user profile iconchriss1988 hat folgendes geschrieben:
aha und nun bitte auf deutsch ich bin neu im programmieren


meiner Meinung ist mein Beitrag in Deutsch :?

was verstehst du denn nicht ?
chriss1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: Do 08.12.05 11:04 
wenn ich ehrlich bin ich versteh nur bahnhof
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 08.12.05 11:04 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
var
  Form1: TForm1;
  Zaehler:Integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc(Zaehler);
  Timer1.Interval:=1000;
  if Zaehler=1 then Label1.Color:=clGreen;
  if Zaehler=2 then Label1.Color:=clYellow;
  if Zaehler=3 then Label1.Color:=clRed;
  if Zaehler=4 then Label1.Color:=clBtnFace;
  if Zaehler=5 then Zaehler:=0{Hab Ich Vergessen Zaehler zurücksetzen sonst gehts nur 1X}
  if Zaehler=5 then Timer1.Enabled:=False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Enabled:=False;
end;

end.


Zuletzt bearbeitet von Blackheart666 am Do 08.12.05 11:23, insgesamt 1-mal bearbeitet
chriss1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: Do 08.12.05 11:08 
user profile iconBlackheart666 hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
var
  Form1: TForm1;
  Zaehler:Integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Inc(Zaehler);
  Timer1.Interval:=1000;
  if Zaehler=1 then Label1.Color:=clGreen;
  if Zaehler=2 then Label1.Color:=clYellow;
  if Zaehler=3 then Label1.Color:=clRed;
  if Zaehler=4 then Label1.Color:=clBtnFace;
  if Zaehler=5 then Timer1.Enabled:=False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Enabled:=False;
end;

end.


aha das formcreat bekomm ich bei ereignisse bei der form1
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 08.12.05 11:13 
Den Timer Interval und das False im Create hab Ich jetzt nur der Übersicht halber gesetzt, das kannst Du auch über den OB tun.
chriss1988 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 389

windows xp prof,home,windows98
delphi5
BeitragVerfasst: Do 08.12.05 12:17 
ok danke das hab ich jetzt nun öchte ich das das nur kommt wenn ich
kein radiobutton anklick

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
//Hauptfunktion
 procedure TForm2.BitBtn1Click(Sender: TObject);
 begin

  Tauschgeld:=strtofloat(edit1.text);

 If radiobutton1.checked then
  Betrag:=Tauschgeld/Dollar;

 If radiobutton2.checked then
  Betrag:=Tauschgeld/Kronen;

 If radiobutton3.checked then
  Betrag:=Tauschgeld/1000;


//wenn das passirt soll er dan das mit dem timer bringen
 if (not radioButton1.checked) and             
    (not radioButton2.checked) and
    (not radioButton3.checked) then
    betrag:=0;
    panel1.caption:='error';
    panel1.visible:=true;
    Timer1.Enabled:=True;

  edit2.text:=floattostrf(Betrag,fffixed,9,2);

 end;

 procedure TForm2.Timer1Timer(Sender: TObject);
 begin
    Inc(Zaehler);
  Timer1.Interval:=1000;
 if Zaehler=1 then panel1.Color:=clGreen;
 if Zaehler=2 then panel1.Color:=clYellow;
 if Zaehler=3 then panel1.Color:=clRed;
 if Zaehler=4 then panel1.Color:=clBlue;
 if Zaehler=5 then panel1.Color:=clBtnFace;
 if Zaehler=6 then Timer1.Enabled:=False;

 end;

 procedure TForm2.FormCreate(Sender: TObject);
 begin
  Timer1.Enabled:=False;
 end;



also wie mach das nun weil immoment bringt er mir immer die fehlermeldung.
petergensfeld
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46

Windows Vista 32-Bit
Delphi XE Professional
BeitragVerfasst: Do 08.12.05 15:12 
Hallo,

ich würde Blackhearts Code noch dahin ändern, dass die Laufvariable nicht global, sondern statisch innerhalb der Routine definiert wird. Das Interval braucht nur einmal im FormCreate gesetzt zu werden (oder eben im OI). Die Timer-Routine könnte dann so aussehen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Timer1Timer(Sender: TObject);
const Zaehler: Integer=0;
begin
  inc(Zaehler);
  case Zaehler of
    1: Label1.Color:=clGreen;
    2: Label1.Color:=clYellow;
    3: Label1.Color:=clRed;
    4: Label1.Color:=clBtnFace;
    else begin
      Timer1.Enabled:=False;
      Zaehler:=0;  // sonst funktioniert es nur beim 1. Mal
    end;
  end;    
end;


Du solltest mal ein begin...end um Dein If setzen!

Gruß Dirk
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 08.12.05 15:39 
Ich Denke mal man sollte zu seinem Problem, immer dazu sagen was habe Ich denn überhaupt vor ! (Die Idee wird schon keiner Klauen)
"Weil" - aus dem einem Problem ergibt sich das andere, und wenn man weiss worauf der Fragesteller hinauswill (was manchmal nicht so einfach ist) lässt sich das eigentliche Problem doch schon ziehmlich genau eingrenzen und eventuell auch ziehmlich einfach beantworten.
(Sonst ist meistens alles geraten, der Thread wird lang und das Ergebnis ist naja...)
Ich muss dazu sagen das es mir auch schon öfter so ging, das Ich zwar mein Problem kannte aber es mir ziehmlich schwer gefallen ist es auch irgendwie rüberzubringen.
Die ganze Sache mit Case usw. ist alles richtig, aber man weiss eben nie genau wie weit ist der Fragesteller !
Ich denke drei Codezeilen zum Anfang sind nicht viel mehr Arbeit, aber eben zum Anfang besser zu verstehen.
Ivo@CoMRoK
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 258

Win XP
D3 Prof., D7 Pe.
BeitragVerfasst: Fr 09.12.05 22:05 
Also ich finde das ist jetzt irgendwie nicht eindeutig:
Willst su dass das Panel immerwieder mal blinkt und dann wieder nicht?
Dann würd ich das so machen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  procedure Timer1.Timer(Sender: TObject)
  begin
  Timer1.Interval := 100;
  Label1.Color:= clGreen;
  sleep(10);
  ...//hier machst du die anderen Farben in der selben weise
  end;


Oder willst du auf eine Aktion etwas ausführen?
Dann so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure Button1.Click(Sender: TObject)
  begin
  Label1.Color := clGreen;
  sleep(10);
  ...//und wieder die anderen Farben
  end;


mfg Ivo

_________________
Fällt der Bauer tot vom Traktor, stand am Waldrand ein Reaktor.
Ein altes indianisches Sprichwort besagt:Es kann gefährlich sein gelben Schnee zu essen.