[DelphiX] jak wyswietlic tekst ;)

0

Czy jest inny sposob na zrobienie tego (moze TextRect i jakis WordWarp ? ;) )
oto kod:

function TForm1.Make: boolean;
begin
setLength(buff,Memo1.lines.Count);
for I := 0 to Memo1.lines.Count-1 do
begin
buff[I] := Memo1.Lines.Strings[I];
end;

result := True;

end;

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
if Make = false then Make;

for I := 0 to High(buff)do
begin
DxDraw1.Surface.Canvas.TextOut(100,I*20,Buff[I]);
DxDraw1.Surface.Canvas.Release;
end;
end;

buff to oczywiscie tablica strongow, ale chodzi mi o to, aby wyswietlilo kilka lini tekstu
pod soba, bez uzywania petli.
najprosciej by bylo tak: TextOut(100,100,'aaaaaa'#13#10'aaaaa'); D:D --Source of life - Programming,
Skateboarding,
Metal.

0

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
if Make = false then Make;
DxDraw1.Fill(0);

for I := 0 to High(buff)do
begin
DxDraw1.Surface.Canvas.TextOut(100,I*20,Buff[I]);
end;
DxDraw1.Surface.Canvas.Release;
DxDraw1.Surface.Flip;
end;

Chyba tak powinno być :)

0

dev_il napisał:
Czy jest inny sposob na zrobienie tego (moze TextRect i jakis WordWarp ? ;) )

Mi ten kod się podoba. Może za wyjątkiem jednej linijki:

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
if Make = false then Make;

for I := 0 to High(buff)do
DxDraw1.Surface.Canvas.TextOut(100,I*20,Buff[I]);
DxDraw1.Surface.Canvas.Release;*Wydaje mi się, że można to umieścić poza pętlą
end;--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http:*www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

pominmy szczegoly :P i moze bys mnie nie poprawial tylko dal odpowiedz :)
--Source of life - Programming,
Skateboarding,
Metal.

0

pregusia był ode mnie szybszy :)

Ale ja mam pytanie. Używasz DelphiX i Memo razem? Rozumiem, że obraz z DirectDraw.Surface jest wyświetlane w okienku. Ten tekst w Memo zmienia się? Co robi funkcja Make? (dużo pytań :D , ale chcĘ zrozumieć twoje motywy działania i sens zmieniania sposobu wyświetlania)--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

huh wiec tak:
uzywam funkcji make aby stworzyc dynamicznie tablice, poniewaz zawartosc memo bedzie wczytywana z pliku i chce miec dokladna "tablice" na linie (moglem operowac TStringList ale co tam). A Memo.Visible := false :P.
btw. ten kod wpisalem w kilka minut bo chcialem sie dowiedziec czy jest jakis inny sposob na jego wyswietlenie ;)--Source of life - Programming,
Skateboarding,
Metal.

0

Dlaczego stosujesz obiekt TMEmo i visible na false, skoro możesz użć TSringList ???

0

a ktos tu kiedys wspomnial ze nie czytacie postow do konca :)
przeciez napisalem ze to byl tylko taki przyklad na szybko i chcialem sie dowiedziec czy mozna to zrobic inaczej .--Source of life - Programming,
Skateboarding,
Metal.

0

dev_il napisał:
uzywam funkcji make aby stworzyc dynamicznie tablice, poniewaz zawartosc memo bedzie wczytywana z pliku i chce miec dokladna "tablice" na linie (moglem operowac TStringList ale co tam). A Memo.Visible := false :P.
&gtbtw. ten kod wpisalem w kilka minut bo chcialem sie dowiedziec czy jest jakis inny sposob na jego wyswietlenie ;)

  1. TStrings lub TStringList zżera mniej pamięci, nie trzeba ukrywać i szybciej działa niż Memo.
  2. Można odczytywać bezpośrednio do tablic dynamicznych
  3. Ostatecznie możesz spróbować wykorzystać Canvas z Memo i od razu przekopiować :)--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

kurde no uczepili sie tego memo :P
bawilem sie i tak mi zostalo na formie, wiec nie bede sie znecal i go kasowal :)
przeciez wiem ze TStringList jest szybsze od Memo (ciekawe kto mysli inaczej),
i ogolnie jest lepsze jesli nie potrzeba komponentu.
a co do :
&gt3. Ostatecznie możesz spróbować wykorzystać Canvas z Memo i od razu przekopiować
ze co ? :)--Source of life - Programming,
Skateboarding,
Metal.

0

a to tak dla zaspokojenia was :)
tak moglem zrobic ale zrobilem inaczej.

function TForm1.make: boolean;
begin
buff := TStringList.Create;
buff.LoadFromFile('C:\a.txt');
Result := True;
end;

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
If Make = False Then Make;

for I := 0 to buff.Count-1 do
DxDraw1.Surface.Canvas.TextOut(100,I*20,buff.Strings[I]);
DxDraw1.Surface.Canvas.Release;
DxDraw1.Flip;
end;
--Source of life - Programming,
Skateboarding,
Metal.

0

dev_il napisał:
&gtfor I := 0 to buff.Count-1 do
&gt DxDraw1.Surface.Canvas.TextOut(100,I*20,buff.Strings[I]);
&gt DxDraw1.Surface.Canvas.Release;
&gt DxDraw1.Flip;
&gtend;

for I := 0 to buff.Count-1 do
DxDraw1.Surface.Canvas.TextOut(100,I*20,buff.Strings[I]);
end;
DxDraw1.Surface.Canvas.Release;
DxDraw1.Flip;

Tak bedzie dzialalo o niebo szybciej :)
--W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.

0

czy aby na pewno bedzie dzialalo, bo mnie sie wydaje ze nie bardzo (po co ten "end;")
zauwaz ze ja w moim kodzie w petli wykonuje tylko ta linie:
"DxDraw1.Surface.Canvas.TextOut(100,I*20,buff.Strings[I]); "
czyzbym sie mylil ? :)
--Source of life - Programming,
Skateboarding,
Metal.

0

dev_il napisał:
czy aby na pewno bedzie dzialalo, bo mnie sie wydaje ze nie bardzo (po co ten "end;")

{glowa} Nie zauwazylem ze nie ma begina przy petelce :)--W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.

0

Długo będziemy się tak przekomarzać?

Jedno pytanie: Jeżeli chcesz inny sposób to po co????? Szybszy? Jeżeli ten dobrze działa to po co to zmieniać?--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

ok juz koniec tego tematu,
&gtJedno pytanie: Jeżeli chcesz inny sposób to po co?????
po nic, tylko z ciekawosci, czy ja mowilem ze tamten mi nie pasuje?!!!
ok topic is close :) --Source of life - Programming,
Skateboarding,
Metal.

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