Generowanie Losowego Tekstu

0

Witam, dopiero zaczynam programowanie w Delphi i potrzebuje pomcy.
Chce napisac bardzo prosty programik ktory bedzie.

  1. Po nacisnieciu w button generowal losowy tekst w polu Edit
  2. Posiadal progress bar, tyle ze z innym wygladem niz standardowy (jak taki zrobic i czy sie da)

Dziekuje z gory za pomoc

0

1.Użyj "const" oraz tablic.
2.Da się. Po za ProgressBar'em jest jeszcze TGauge oraz wiele poradników. Ja znalazłem taki w 5 sekund, ale linku Tobie nie podam (sam se znajdź).

Nudzę się, więc:

Function LosujTekst: String;
Const Teksty: Array[0..3] Of String = ('Jakiś tekst', 'Tekst 2', 'Tekst 3', 'Coś zupełnie innego');
Begin
 Randomize;
 Result := Teksty[Random(High(Teksty))];
End;

Czyli:

Edit1.Text := LosujTekst;

I uważaj więcej na lekcjach.

0

dostaje blad przy tej linijce (dodalem to w Edit)
Edit1.Text := LosujTekst;

pisze Undeclared identifer: 'LosujText'

0

podzielam zdanie Patryka27, aby nie uważał na lekcjach, ale stało się to co się stało :D
Patryku! nie do końca znajduję tego co napisałeś w składni Delphi i struktury zdarzeń wynikających z akcji :) być może powinieneś się wziąć za coś łątwiejszego :)
odnośnie drugie punktu :) tak istnieje taka możliwość - można wszystko co można zobaczyć na ekranie dostosować do swoich indywidualnych potrzeb :) to tylko Twojej wizji i inspiracji :)
a do Patryka27 - trochę poczytaj i wejdź w dobrą stronę mocy :D

0

bo funkcja nazywa się LosujTekst a nie LosujText.

Sprawdź, czy masz dobrze wpisane przypisanie.

Ja bym to zrobił tak (choć pewnie niepoprawnie):

 
procedure TForm1.Button1Click(Sender: TObject);
var
a:integer;
b:string='tekst1';
c:string='tekst2';
d:string='tekst3';
begin
  randomize;
  a:=random(3);
  if a=0 then edit1.text:=b;
  if a=1 then edit1.text:=c;
  if a=2 then edit1.text:=d;
end;

W pola tekst 1, tekst2 i tekst3, możesz wpisać swoje teksty. Oczywiście może być ich więcej, w tedy deklarujesz nowe zmienne i dodajesz instrukcje warunkowe...

0

Zajebiście optymalny kod tysiąc ifów ;P Nie łatwiej tak?

//...
function LosujTekst : string;
const
  TabWords : array[0..2] of string = ('jeden', 'dwa', 'trzy');
begin
  Result := TabWords[Random(High(TabWords) + 1)];
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  Caption := LosujTekst;
end;

Albo coś w stylu do generowania losego tekstu o określonej długości:

function GenerateRandomFileName(HowMuch : Byte) : string;
const
  CharsArr = '3av5r8t1q4x7po69weyuisdfghjklzcbnm20';
var
  I : Byte;
begin
  Result := '';
  if (HowMuch < 1) or (HowMuch > 240) then
    Exit;
  Randomize;
  for I := 1 to HowMuch do
    Result := Result + CharsArr[Random(Length(CharsArr)) + 1];
end;
0
Merolkens napisał(a)

dostaje blad przy tej linijce (dodalem to w Edit)
Edit1.Text := LosujTekst;

pisze Undeclared identifer: 'LosujText'
Zgaduję, że funkcję LosujTekst wkleiłeś pod procedurą w której ją wywołujesz. Przenieś ją nad tą procedurą.

0

Czepiacie się, jak rzep do psiego ogona :)

nie do końca znajduję tego co napisałeś w składni Delphi i struktury zdarzeń wynikających z akcji

Nie do końca znajduję sens tego zdania.

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