Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit TTimer bei aktivierung durch einen TButton! (https://www.delphipraxis.net/131815-problem-mit-ttimer-bei-aktivierung-durch-einen-tbutton.html)

Coolkakashi 31. Mär 2009 20:10


Problem mit TTimer bei aktivierung durch einen TButton!
 
Also ich bräuchte mal Hilfe jungs :D

Delphi-Quellcode:
begin
  if
    btn_startend.Caption = 'Start'
  then begin
    btn_startend.Caption := 'Stop';
    t_timer.Enabled := 'true'
  end
  else begin
    btn_startend.Caption := 'Start';
    t_timer.Enabled := 'false'
  end
end;
Ich bekomme hier immer wieder einen Fehler an dem ersten End! Delphi meint inkompatible typen bollean und integer! Need help :D Thx


mfg CoolKakashi


[edit=Matze][delphi]-Tags repariert. MfG, Matze[/edit]

jaenicke 31. Mär 2009 20:19

Re: Problem mit TTimer bei aktivierung durch einen TButton!
 
Nimm bei true und false einmal die Anführungszeichen weg, das sind boolsche Werte und keine Strings...
Die Fehlermeldung ist ja wohl eher inkompatibel zwischen Boolean und String...

Außerdem geht das kürzer auch so:
Delphi-Quellcode:
t_timer.Enabled := btn_startend.Caption = 'Start';
if t_timer.Enabled then
  btn_startend.Caption := 'Stop'
else
  btn_startend.Caption := 'Start';

Nelphin 31. Mär 2009 20:21

Re: Problem mit TTimer bei aktivierung durch einen TButton!
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if button1.Caption = 'Start' then
  begin
    button1.Caption := 'Stop';
    timer1.Enabled := true;
  end
else
  begin
    button1.Caption := 'Start';
    timer1.Enabled := false;
  end;
end;
Semikolons nicht vergessen und Hochkommas bei false und true sind falsch.

So müsste es gehen.

Gruß

W.

DeddyH 31. Mär 2009 20:22

Re: Problem mit TTimer bei aktivierung durch einen TButton!
 
Ich glaube, Du meintest das eher so:
Delphi-Quellcode:
if btn_startend.Caption = 'Start' then
  begin
    btn_startend.Caption := 'Stop';
    t_timer.Enabled := true; //ohne Hochkommata
  end
else
  begin
    btn_startend.Caption := 'Start';
    t_timer.Enabled := false; //dto.
  end;
P.S.: Willkommen in der DP :dp:

[edit] Kleine Anmerkung noch: Du solltest Logik und Darstellung trennen [/edit]

Coolkakashi 31. Mär 2009 20:40

Re: Problem mit TTimer bei aktivierung durch einen TButton!
 
Cool vielen dank an euch :) Jetzt nochmal ne kleine Frage! Ich möchte jetzt zb, das Zufallswerte in die Zellen von StringGrid eingetragen werdenm wenn der Timer läuft!
Also zb Temperatur = random;

Aber wo gehört das hin? In die Form oder mit zum Button?

DeddyH 31. Mär 2009 20:46

Re: Problem mit TTimer bei aktivierung durch einen TButton!
 
Auch wenn ich es nicht recht verstanden habe würde ich mal denken, ins Timer-Ereignis.

Coolkakashi 31. Mär 2009 21:03

Re: Problem mit TTimer bei aktivierung durch einen TButton!
 
Gemeint war das so : Wenn ich den Button Start drücke, startet auch der Timer! Dieser soll dann zufallszahlenwerte in eine Spalte von Stringgrid eintragen!
Wie mach ich das genau? Die Werte sollen random sein.
Bräuchte hilfe, wie ich das mit dem random gut hinbekomme und wie ich die werte dann in der zeile ausgeben kann. Danke :)

Coolkakashi 31. Mär 2009 21:34

Re: Problem mit TTimer bei aktivierung durch einen TButton!
 
Delphi-Quellcode:
procedure Tmess_form.t_timerTimer(Sender: TObject);
var temperatur : extended;
begin
randomize;
temperatur := random


end;
So habe ich das bis jetzt! Im Unterricht hatten wa den begriff Randomize, wozu der nochma gu war weiß ich net!Aber wie gehts jetzt weiter? :)

blink182 31. Mär 2009 21:50

Re: Problem mit TTimer bei aktivierung durch einen TButton!
 
wenn du randomize einmal beim FormCreate aufrufst reicht das ;)

Delphi-Quellcode:
temperatur := random
das liefert dir Werte zwischen 0 und 1, ist die Frage ob du die nun haben möchtest oder bsp Werte von 0 bis 100 o.ä.
dann je nach dem wie viele Zeilen du hast sollte gefüllt werden und danach halt nicht mehr (Timer ausstellen?) bzw neue Zeilen im Grid erzeugt werden.
vllt solltest du noch eine integer Variable für die aktuelle Position im Stringgrid einführen, die sich also die Zeile merkt. Und dann solltest du halt immer die die Zahl in die Nächste Zeile eintragen Stringgrid1.Cells[0,Position]:=floattostr(temperatur);

mfg blink182

Coolkakashi 31. Mär 2009 22:00

Re: Problem mit TTimer bei aktivierung durch einen TButton!
 
@blink: Vielen Dank! ;) Aber das temperatur := random; kann ich nicht weglassen, da es ansonsten zu einer fehlerschleife kommt und delphi sich aufhängt xD
Also unsere aufgabe war es, dass dort zufallswerte eingetragen werden! Anschließend sollten wir diese in einem bereich festlegen: -15 bis 40C° ! Unsere neue Aufgabe lauutet einen Button einzubauen, der wie eine Heizung fungiert und sobald man ihn drückt, soll die Temperatur ansteigen.

Nochmal nen paar Fragen^^ Wie lege ich fest, wieviele nachkommastellen die random zahl haben soll und wie sollte man sich das mit der heizung vorstellen? Thx nochmal für die hilfe^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz