Stoper ...

0

Czesc all. Chcę zrobic sobie stoper aby wyświetlał mi sekundyw polu Edit2 i daje do Timer'a coś takiego:

Edit2.Text := Edit2.Text+1;

ale nie działa i pokazuje taki błąd [???]
[Error] Unit1.pas(70): Incompatible types: 'String' and 'Integer'

Pomoglibyście mi zrobic ten stroper ???

0

Edit2.Text := IntToStr(StrToInt(Edit2.Text) +1);

chyba tak...

0

wyskakuje błąd
"Debbuger Exception Notification "
Project stoper.exe raised exception class EconvertError width message
"is not a valid integer value". Process stopped. Use step to run to continue

wiesz cos może o tym ??

0

Niedługo dam źródła mojego zegarka to zobaczysz :)

0

"is not a valid integer value".

Pusty string NIE jest integerem. spróbUj przechowywać milisekundy w globalnej zmiennej (0..999) i jak trzeba to dodawaj do niej, a text w edicie oprzyj na IntToStr(Zmienna)

0

ale zrób coś takiego:

zadeklaruj zmienną X:

var
X : integer;

przypisz jej wartość X := 0;

a w obsłudze Timera
X = X + 1;
Edit1.Text = IntToStr(X); // albo na odwrót StrToInt(X); :d

0

Edit2.Text := IntToStr(StrToInt(Edit2.Text) +1);

chyba tak...

Mi to działa!!
Sprawdzałem na Delphi 6 i 7, a ty jakie masz?

0

a mi to nie działa :( mam 7 ... a trzeba coś może w uses dopisać ??

0

mozna tez tak :

Ustaw Edit2.Text:='0';

const
x:integer=0;

i w timer piszesz procedure:

begin
x:=StrToInt(Edit2.Text);
x:=x+1; // ustawiasz jaką liczbe ma dodawac
Edit2.Text:=IntToStr(x);

działa git.

0

mozna tez tak :

Ustaw Edit2.Text:='0';

const
x:integer=0;

i w timer piszesz procedure:

begin
x:=StrToInt(Edit2.Text);
x:=x+1; // ustawiasz jaką liczbe ma dodawac
Edit2.Text:=IntToStr(x);

działa git.

linijka:
[code]x:=StrToInt(Edit2.Text);[/code]
jest zbyteczna, jeżeli x jest zmienna globalną to będzie wciąż zawierała wartość :d

0

a i jeszcze jedno, napisałeś;

const
x:integer=0;

...

x:=x+1; // ustawiasz jaką liczbe ma dodawac

...

jak ty zamierzasz przypisać do stałej wartość ?? :p

0

a mi to nie działa :( mam 7 ... a trzeba coś może w uses dopisać ??

Ja sprawdzałem w nowo stworzonej aplikacji (wiesz: File\New\Application)

A to mam w uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;

0

jak ty zamierzasz przypisać do stałej wartość ?? :p

Można, trzeba tylko dać dyrektywę:
{$J+} czyli
{$WRITEABLECONST ON}

Wtedy stałe typowane funcjonują jak zmienne statyczne.

0

Można, trzeba tylko dać dyrektywę:
{$J+} czyli
{$WRITEABLECONST ON}

Wtedy stałe typowane funcjonują jak zmienne statyczne.

przyznaję nie wiedziałem o tym [wstyd]
no ale jak juz tak napisał, to powinien o tym wspomnieć :-)

0

Musisz dać:
Edit1.Text := IntToStr(Edit1.Text + 1)

0

Musisz dać:
Edit1.Text := IntToStr(Edit1.Text + 1)

Interesujące... :) Jak już, to:

Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+1);

0

Jak wszyscy to wszyscy, ja też.

Jeśli to ma być stoper to zapewne będzie miał przycisk start, stop oraz zatrzymanie międzyczasów .

proponuje:
w private
zmienna np

...
  private
   czasstartu : TDateTime ;
...
// przycisk start
procedure TForm1.Button1Click(Sender: TObject);
begin
czasstartu := now ;
Edit1.Text := TimeToStr(0) ;  
Timer1.Enabled := True ;
end;

// przycisk międzyczasu
procedure TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Lines.Add(Edit1.Text) ;
end;

//przycisk stop
procedure TForm1.Button3Click(Sender: TObject);
begin
  Timer1.Enabled:=False ;
  Memo1.Lines.Add(Edit1.Text) ;
end;

//ewentualnie jakiś reset :
procedure TForm1.Button4Click(Sender: TObject);
begin
  Edit1.Text := TimeToStr(0) ;
  memo1.Lines.Clear ;
end;

//a w on timer :
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Edit1.Text:= TimeToStr(now-czasstartu) ;
end;

Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+1);
nie będzie prawidłowo odliczał pod systemami WinME, 98, czy 95, ponieważ OnTimer nie wykonuję się np. w czasie przesuwania formy.

0

A ja bym zamiast TimeToStr dał FormatTimeDate czy jakoś tak... (a może DateTimeFormat...) bo to daje lepsze możliwości wyświetlania czasu: można np. mierzyć czas co do 1 milisekundy. W FormatTimeDate milisekunda to chyba 'z'... Sprawdźcie w helpie...

0

Hehe... posta napisałem 15 miesięcy temu :D... i teraz odpowiedzi dostaje :P... co już delpki nie mam hohoho :)... ale i tak dzięki wam :P

// to was podsumowal ;]
// mateuszopoka gratuluję ... wyczucia czasu. [mf]

1 użytkowników online, w tym zalogowanych: 0, gości: 1