Witam jak zrobic zeby label sie zmienial co 1 sekunde na inny wyraz …wiem ze mozna uzyc do tego timera,sleepa,.itp . ale jak uzywam timera albo sleepa to tylko jest pokazany 1 i ostatni tekst. :?
Ale o co chodzi tak dokładniej?
Skąd te wyrazy mają się brać?
Pozdrawiam
A uruchomiłeś w ogóle Timer? Ustaw we właściwościach interwał (np. 500 - pół sekundy), w procedurę obsługi timera wpisz:
Label1.Caption := TimeToStr(Now);
I uruchom aplikację. Działa? Nie diała?
Ta procedura pokazuje czas… a mi chodzi ze np. podaje 10 wyrazow(obojetnie jakich) i zeby po koleji pokazywaly sie w label co sekunde (najpierw pierwszy za 1 sekunde drugi itd.).
Nie ważne co robi. Ważne czy robi. Napisałeś, że się nie zmienia i w pierwszej kolejności należy wyeliminować prawdopodobieństwo, że tą część, którą sądzisz, że robisz dobrze, robisz źle.
A do wyświetlenia tych wyrazów używasz jakiejś zmiennej którą deklarujesz przez Var … ?
Pytam bo miałem podobny problem aby etykieta label po uruchomieniu formy na której ja umieściłem wyświetlała co 0,1 s liczby od 1 do 100, czyli 1,2,3 …,100. Uzyłem Formy TForm1, etykiety label1, timera Timer1 i przypisałem zdarzeniu timera wyświetlanie kolejnych wartości zmiennej x, jako Label1.Caption. I wszytsko jest OK jesli zmienna x jest zadeklarowana tam gdzie zmienne formy TForm, a nie przy zdarzeniu TTimer. Jak ją zadleklaruję w metodzie zdarzeniowe TTimer (zaznaczyłem opisem miejsce gdzie chciałem ją zadeklarować) to wygląda to podobnie do twego opisu. Popatrz:
unit cyferki;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x : integer; // Tu jest zadeklarowana zmienna X
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
//Jak bym tu ją zadeklarował to by było źle
begin
Label1.Caption:= FloatToStr(x)+' %';
x:=x+1;
If x=101 then Timer1.Enabled:=False
end;
end.
W wielu innych przypadkach zmienną która bierze udział tylko w jakimś zdarzeniu deklarowałem w tym zdarzeniu i było OK ale w tym przypadku nie. Może zawsze trzeba tak robić i ja wcześniej robiłem źle ale programy działały poprawnie choć były to proste programy, a je też właśnie zaczynam sie tego uczyć.
Może u ciebie jest podobny problem???
dawidek11 przeczytaj punkt 2.14 regulaminu i popraw temat. W przeciwnym razie zostaną wyciągnięte konsekwencje.
Jesli chodzi o ortografie to mam angielski windows i niemam samoglosek .
Polskich znaków diakrytycznych jeśli już. Skopiuj z cudzego tekstu i wklej - to z jakiej maszyny korzystasz nie usprawiedliwia Cię. Ponadto wystarczy zainstalować polską klawiaturę w Windows by mieć polskie litery - nie trzeba mieć polskiego Windowsa, więc Twoje tłumaczenie jest zupełnie nietrafione.
[Offtop] Ja też mam angielska windę ,ale dodałęm sobie polski język do listy i klawiszami Alt+LShift zmieniam sobie języki pozdrawiam
Pomóż chłopakowi, a nie czepiasz się cudzych błędów. Wszak istnieje dysleksja i inne, więc to głupie, ażeby siedzieć przy zadawaniu pytania ze słowniekiem… Ponadto napisał jasno i klarownie, masz problemy ze zrozumieniem ? Już nie wspomnę, że wymagasz żeby chłopak kopiował znaki z cudzych tekstów. Parodia.
– Dodane 03.12.2010 (Pt) 9:18 –
Możesz chociażby w timerze…
if label1.caption='tekst1' then
label1.caption:='text2'
else
if label1.caption='text2' then
label1.caption:='text3'
I tak do 10…
Prawdopodobnie dałeś właściwość Interval 1 ms, co oznacza że całość wykonuje się w 1/10 sekundy, więc nić dziwnego że widzisz tylko ostatnią wartość, reszta nie zdążyła się wyświetlić.
Interval:=1000; // 1 sekunda
[alex] spójrz na datę pierwszego posta w tym temacie Osoba, która go odświeżyła prawdopodobnie właśnie wróciła do świata żywych po długim pobycie w kapsule hibernacyjnej.
Heh nekrofilia …