ehilà,
incredibile a dirsi ma, dopo nemmeno due ore sono riuscito a dare l'impostazione che volevo io (più o meno) al TString GRid ed a farle fare ciòà che volevo io.
però il codice che ho creato era specifico per una griglia unica già presente nel form, ma d'altra parte era l'unico modo per testare in tempo reale le modifiche..
ora,
come diavolo rendo generico il codice per tutte le griglie che devono apparire al click su pulsante?
codice:
procedure pulsanteClick(Sender: TObject);
begin
with TStringGrid.Create(self) do
begin
self:=parent;
opzioni sceme varie....
end;
end;
dove va infilato il lungo codice che gestisce la griglia?
codice:
procedure TForm1.GrigliaKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); //gestisce i "conti" al click su invio
var num1,num2,totale:integer;
begin
if key=vk_return then
begin
num1:=StrToInt(griglia.Cells[1,i]); //prende la riga col primo valore
num2:=StrToInt(Griglia.Cells[1,i+1]); //prende la riga col secondo valore
totale:=num1-num2; //li sottrae
if totale<=0 then //formatta la griglia e la disabilita se il valore è 0
begin
messagedlg('Il valore è 0!!!',mtWarning,[mbOK],0);
Griglia.Enabled:=false;
Griglia.Color:=clMedGray;
Griglia.FixedColor:=clMedGray;
Griglia.Font.Color:=clGray;
end;
Griglia.Cells[1,i+2]:=IntToStr(totale); //restituisce la somma nella cella sottostante le due precedente
Griglia.Cells[0,i] := 'Round ' + IntToStr(count); //Caption delle fixedCol
Griglia.Cells[0,i+1] := 'Danni Subiti'; //idem
i:=i+2; //incrementa il contatore che preleva i valori
count:=count+1; //incrementa il contatore per formattare una fixedcol
Griglia.RowCount:=Griglia.RowCount+2; //aggiunge due righe dopo l'operazione
end;
end;