Delphi - zmieniajacy sie Label

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 :slight_smile:

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… :frowning: 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 :slight_smile: .

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 :slight_smile: 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 :smiley: 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 …