[Delphi] jak to zrobić

0

jak zrobić że co sekunde odczytywało i tekst z edit1.text do edit2.text ale co jedn znak , czyli jak w edit1.terxt jest napisane 'test' to co sekunde ma do edit2.text wpisywac najpierw 't' potem 'e' , 's', 't' czyli pokojeji

oczywiście w DELPHI :)

0

wkładasz Timera inetrval 1000

globalna zmienna cos : byte;

ontimer
Edit2.text:=Edit2.text+Edit1.text[cos];
inc(cos);

0

coś nie działa

poprosu nic sie nie pojawia
gdzie jest błąd

procedure TForm1.Timer1Timer(Sender: TObject);
VAR
cos : byte;

begin
Edit2.text:=edit1.text+Edit1.text[cos];
inc(cos);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;

0

co: Byte;

nie ma być w zmiennych procedury timmera tylko globalnej! Wpisz to np. w PRIVATE.

i zrób może jeszcze w procedurce timmera

if co>Length(Edit1.Text) then Timer1.Enabled:=False - by to włączyć :)

0

procedure TForm1.Timer1Timer(Sender: TObject);
[b]const
cos: byte = 1[/b];

begin
Edit2.text:=edit1.text+Edit1.text[cos];
inc(cos);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;

0

procedure TForm1.Timer1Timer(Sender: TObject);
[b]const
cos: byte = 1[/b];

const?
to ma być zmienna !

jak tam masz
var
Form1 : TForm1;
to daj: cos : byte = 1 ;

0

To jest zmienna. Przynajmniej tak było do Delphi 5. W 6 trzeba włączyć pewną opcję kompilatora.

0

To jest zmienna. Przynajmniej tak było do Delphi 5. W 6 trzeba włączyć pewną opcję kompilatora.

:-D Wystarczy const zaminić na var:
var
cos: Byte = 1;

Jak widać bardziej intuicyjne niż const z Pascala.

0

var
cos: Byte = 1;

To nie przejdzie...

0

To nie przejdzie...

Przez co nie przejdzie bo kompilator kompiluje ...

0

Przez co nie przejdzie bo kompilator kompiluje ...

Jestem zszokowany. U mnie kiedyś wywalał błąd, że takie konstrukcje nie mogą wystąpić w procedurach. Chlip ;-(

0

na pewno to działa w Delphi 6. w innych nie wiadomo...

0

const
cos: byte = 1;

działało do wersji 5 (może 6), ale Delphi 7 tego nie traktuje jako zmienną statyczną, wiec Inc(cos) jest nie możliwe

var
cos: Byte = 1;

może być użyte przed sekcją implementation

Więc dla Delphi 4,5

procedure TForm1.Timer1Timer(Sender: TObject);
const
cos : byte =1;
begin
Edit2.text:=edit2.text+Edit1.text[cos];
Inc(cos) ;
IF cos > length(Edit1.text) then timer1.Enabled:=False ;
end;
będzie poprawnie
dla wersji nowszych można pisać:

...
var
Form1: TForm1;
cos : byte = 1 ;
implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Edit2.text:=edit2.text+Edit1.text[cos];
Inc(cos) ;
IF cos > length(Edit1.text) then timer1.Enabled:=False ;
end;
...

lub zaniechać podawania wartości początkowej przy deklaracji, robiąc to w :
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text:='';
cos:=1;
timer1.Enabled:=true;
end;
dzięki czemu można wielokrotnie wykorzystać ten efekt.
a cos zadeklarować :
w
private
cos : byte ;
{ Private declarations }

no może jeszcze wspomnę że dla byte tekst nie może być dłuższy niż 255 znaków (ale to powinnobyć oczywiste).

0

const
cos: byte = 1;

działało do wersji 5 (może 6), ale Delphi 7 tego nie traktuje jako zmienną statyczną, wiec Inc(cos) jest nie możliwe

Jest od tego jakaś opcja kompilatora.

var
cos: Byte = 1;

może być użyte przed sekcją implementation

Czyli tak tak jak pisałem.

0

Jednym słowem *****
Trzymanie sie standartów rlz! ;]
Tak serio to kompletnie nie rozumiem takiego czegoś po co to komu?
Żeby consty zwiększać?

0

const
cos: byte = 1;

działało do wersji 5 (może 6), ale Delphi 7 tego nie traktuje jako zmienną statyczną, wiec Inc(cos) jest nie możliwe

Jest od tego jakaś opcja kompilatora.

</quote>

Rzeczywiście znalazłem
{$J+}
Od delphi 2 do 5 jest domyślnie +
w nowszych na - , więc trzeba zmieniać.

Nie mniej jednak nie jest to zalecane rozwiązanie.

Jak by nie patrzeć wszyscy mają rację.

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