Krócej ni?ż Sleep(1) i tworzenie plików

0

Mam petelkę której zadaniem jest przesuwanie komponentu z lewej do prawej. Problem w tym, że forma jest duża i jak mam w petelce sleep(1) i tak trwa to za długo. Czy jeste sposób aby to jeszzce przyspieszyć?

... i jesze jedno pytanko:

Jak stworzyc jakis plik (dowolny) o okreslonej wielkośc np 1 MB?

0

a może se weź zmienną

I:=1 div 1000;
Sleep(I);
0

A nie możesz przyspieszyć przesuwania skacząc np o dwa punkty a nie o 1? I co to za pomysł, żeby w ogóle używać sleep!!

0

A nie możesz przyspieszyć przesuwania skacząc np o dwa punkty

Juz tak robiłem, ale wtedy komponent migai i miga tak że go prawie wcale nie widać.

A poza tym co to za grzech używaie Sleep?

0

A poza tym co to za grzech używaie Sleep?

Posluchaj/przeczytaj: Chcesz przyspieszyc procedure i uzywasz sleep... bardzo logiczne

<$---

Co do pliku, to wklep w TStringList 10241024 np 'q' i bedziesz mial

0

Albo:

var
  F:file;
  s:ansistring;
begin
  SetLength(s,1048576);
  AssignFile(F,'c:\a.dat');
  Rewrite(F,1);
  BlockWrite(F,s[1],1048576);
  CloseFile(F);
end;
0

A poza tym co to za grzech używaie Sleep?

tak w Delphi używanie Sleep to grzech, lepiej użyj Timera

0

Juz tak robiłem, ale wtedy komponent migai i miga tak że go prawie wcale nie widać.

a może by tak w Form.OnCreate dać

Form.DoubleBuffered:=True
0

a może se weź zmienną

I:=1 div 1000;
Sleep(I);

[rotfl] [rotfl] [rotfl]
O matko, jak zdołałeś wpaść na tak genialny pomysł??? [glowa] Słow mi brakuje...

[dopisane]
W ogóle zastanawiam się, po kiego grzyba opóźnianie sleepem? Przecież na różnych komputerach forma będzie się przemieszczać ze skrajnie różnymi prędkościami, a sleep i tak temu nie zaradzi. Proponuję całość zrobić w oddzielnym wątku, a w najgorszym wypadku na timerze.

0

[code]if I(tu_operator_dzielenia_z_resztą)1000=0 then Sleep(1);[/code]

<font color="red">[</span><font color="blue">ADD</span><font color="red">]</span>
A kto tu mówi o ułamkowym Sleep??
// zerknij na drugiego posta, to się pośmiejesz razem ze mną :-D - ŁF

0

Chyba nie zrozumieliscie Łukasza: Sleep robi pętelki, a jak mozesz zrobic polowe procedury?

I ja dalej nie rozumiem po co ten sleep? Wywaj go to bedzie szybciej... :-)

// też mnie nie zrozumiałeś: 1 div 1000 = 1 div 100 = 1 div 2 = 0. Idiotyzmem jest dzielenie integera w oczekiwaniu, że dostanie się coś z przedziału (1,0). No i zapodanie sleep(1 div 1000) powala - przynajmniej mnie - na kolana. ;-( - ŁF

//OA, ale klapa [wstyd]

0

Ale o czym tu dyskutowac!! Co jest szybsze niz Sleep(1)? Odpowiedz: BRAK SLEEP!!

0

A kto tu mówi o ułamkowym Sleep??

ja tak właśnie robie...

For I:=0 to count do
begin
//bla bla bla.....
If I mod 2=0 then Sleep(1);
end;

// jakim cudem udało Ci się coś dopisać, skoro wątek jest zablokowany?

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