Delphi - znaczenie instrukcji

0

Witam. Jestem początkujący. Nie chce aby ktoś mi napisał gotowy program itp. Chcę jedynie abyście wyjaśnili mi wszystkie instrukjce w tym programie, ponieważ dla mnie to bardzo ważne. Myślę że nie będziecie mieli z tym problemu. Z góry dzięki :)

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Button6: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
i,j,s:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
for i:=0 to stringgrid1.ColCount-1 do
for j:=0 to stringgrid1.RowCount-1 do
stringgrid1.Cells[i,j]:=inttostr(random(49));
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
i:=0;
for j:=0 to stringgrid1.RowCount-1 do
s:=s+strtoint(stringgrid1.Cells[i,j]);
label1.Caption:=inttostr(s);
s:=0;

i:=1;
for j:=0 to stringgrid1.RowCount-1 do
s:=s+strtoint(stringgrid1.Cells[i,j]);
label2.Caption:=inttostr(s);
s:=0;

i:=2;
for j:=0 to stringgrid1.RowCount-1 do
s:=s+strtoint(stringgrid1.Cells[i,j]);
label3.Caption:=inttostr(s);
s:=0;

i:=3;
for j:=0 to stringgrid1.RowCount-1 do
s:=s+strtoint(stringgrid1.Cells[i,j]);
label4.Caption:=inttostr(s);
s:=0;
end;

end.

0
for i:=0 to stringgrid1.ColCount-1 do
for j:=0 to stringgrid1.RowCount-1 do
stringgrid1.Cells[i,j]:=inttostr(random(49));

Wypełnia komórki kontrolki StringGrid1 losowymi wartościami z przedziału 0-48

i:=0;
for j:=0 to stringgrid1.RowCount-1 do
  s:=s+strtoint(stringgrid1.Cells[i,j]);
label1.Caption:=inttostr(s);
s:=0;

Sumuje wartości z kolumny o numerze i i zapisuje wynik jako Caption (widoczny tekst) kontolki Label.
BTW powyżej s powinno być wyzerowane przed pętlą, a nie po niej ...

Co do znaczenia samych poleceń, to jak się przyjrzysz dokładnie to większość z "pokolorowanego" kodu to linki do objaśnień. Taki jeden z wielu powodów używania tagów kolorowania składni, a objaśnienia samych pól/metod klas Delphi ma w helpie (wadą jest że po angielsku, ale bez tego języka daleko w tej branży nie zajedziesz) IMO bardzo wygodnym i bardziej niż rozbudowanym.

0

OK. Wielkie dzięki. Mam jeszcze jedno pytanie: Czy sa się w tym programie zrobić, aby klikając przycisk "losuj" automatycznie się czyścił label1. Bo jak klinkę na losuj to losuja sie liczby, a nastepnie jak klikam na suma to sumuja sie liczby z kolumny. Natomiast gdy ponownie klikne na losuj to poprzednia liczba wylosowana zostaje w label1. Dopiero gdy klikne na suma to sie sumuja. A ja chcialbym zeby od razu po kliknieciu na losuj poprzednia liczba wylosowana sie czyscila w label1. Probowalem uzyc instrukcji label1.clear; ale wywala błąd. Bardzo proszę o pomoc.

0

Żeby wyczyścić tekst na labelu przypisujesz mu po prostu pusty ciąg.

Label1.Caption:='';

TLabel nie posiada metody Clear, pewnie dlatego wywalał błąd ;)

0

Wielkie dzięki za pomoc. Pozdrawiam.

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