[delphi]Dodawanie elementow do stringgrida

0

mam procedure:
:-/ :-/

procedure TForm1.DodajClick(Sender: TObject);
var nrzamowienia : longint;
datazamowienia : string;
cena,wartosc : string;
ilosc : string;
ACol,ARow : integer;

begin
if (Edit8.text) and (Edit9.text)
then begin
if ARecord2=nil
then nrzamowienia:=1
else if nowe_zamowienie=true
then nrzamowienia:=ARecord2.nrzamowienia+1
else nrzamowienia:=ARecord2.nrzamowienia;

  datazamowienia:=DateToStr(Date);
  Data_zamowienia:=datazamowienia;
  cena:=Edit7.Text;
  ilosc:=Edit8.Text;
  wartosc:=Edit9.Text;
  DoListy2(nrzamowienia,datazamowienia,numer,Nazwa,cena,ilosc,wartosc);
  nowe_zamowienie:=false;
  StringGrid2.RowCount:=StringGrid2.RowCount+1;
  ARow:=StringGrid2.RowCount;
  WypiszElementy(Sender,ACol,ARow);
  if Edit10.text=''
     then Edit10.Text:=Edit9.text
  else Edit10.Text:=FloatToStr(StrToFloat(Edit10.text)+StrToFloat(Edit9.text));
  end

else ShowMessage('Musisz podać ilość towaru');

i

procedure TForm1.WypiszElementy(Sender: TObject; ACol,ARow: Integer);
begin
StringGrid2.Enabled:=true;
StringGrid2.Cells[0,Arow]:=ARecord2.numer;
StringGrid2.Cells[1,Arow]:=ARecord2.nazwa;
StringGrid2.Cells[2,Arow]:=ARecord2.cena;
StringGrid2.Cells[3,Arow]:=ARecord2.ilosc;
StringGrid2.Cells[4,Arow]:=ARecord2.wartosc;
StringGrid2.Enabled:=false;
end;

Jak wywołuje ja to dopiero w drugim wierszy pojawiają mi się elementy. Na pierwszej pozycji jest czysto(puste komorki). Jak to rozwiązać

0

procedure TForm1.DodajClick(Sender: TObject);
var
nrzamowienia : longint;
datazamowienia : string;
cena,wartosc : string;
ilosc : string;
ACol,ARow : integer;

begin
if (Edit8.text) and (Edit9.text) then
begin
if ARecord2=nil then
nrzamowienia:=1 else
if nowe_zamowienie=true then
nrzamowienia:=ARecord2.nrzamowienia+1 else
nrzamowienia:=ARecord2.nrzamowienia;
datazamowienia:=DateToStr(Date);
Data_zamowienia:=datazamowienia;
cena:=Edit7.Text;
ilosc:=Edit8.Text;
wartosc:=Edit9.Text;
DoListy2(nrzamowienia,datazamowienia,numer,Nazwa,cena,ilosc,wartosc);
nowe_zamowienie:=false;
ARow:=StringGrid2.RowCount;
StringGrid2.RowCount:=StringGrid2.RowCount+1;
WypiszElementy(Sender,ACol,ARow);
if Edit10.text='' then
Edit10.Text:=Edit9.text else
Edit10.Text:=FloatToStr(StrToFloat(Edit10.text)+StrToFloat(Edit9.text));
end else
ShowMessage('Musisz podać ilość towaru');
end;

0

procedure TForm1.DodajClick(Sender: TObject);
.
.
.
ARow:=StringGrid2.RowCount;
StringGrid2.RowCount:=StringGrid2.RowCount+1;
WypiszElementy(Sender,ACol,ARow);.
.
.
end;

Tego juz probowałem i jest własnie tak samo jak pisałem. Chodzi o to że wypisuje dopiero od nr 2 RowCount

poprawiłem ją juz troche na:
ARow:=StringGrid2.RowCount;
if (ARow=2) and (licznik=1) then ARow:=1
else ARow:=ARow+1;
StringGrid2.RowCount:=ARow;
WypiszElementy(Sender,ACol,ARow);
i wypisuej od pierwszego. yle że na pierwszym mam nazwy kolumn, więc za pierwszym razem wypisuje w miejscu nazwa(nie zamienia ich , tylko pierwszy wpis właściwie nic nie robi. Ale nad tym juz pracuje [hurra]

Ale dzieki za pomoc [cya]

0

zmień :
ARow:=StringGrid2.RowCount;
na
ARow:=StringGrid2.RowCount-1;

ponieważ linie są numerowane o zera
więc jeśli jest jedna line to ma nr 0, a RowCout = 1.

0

Wynik mojej pracy wygląda następująco;

ARow:=StringGrid2.RowCount;
if (ARow=2) and (licznik=1)
then begin
ARow:=1 ;
StringGrid2.RowCount:=2;
end;
if (ARow>1) and (licznik>1)
then StringGrid2.RowCount:=ARow+1;
WypiszElementy(Sender,ACol,ARow);

I DZIAŁA!!! :-D [browar]

Wygląda innaczej ale dzieki za chęć pomocy [cya]

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