Si vede che non ho ancora capito come personalizzare i titoli della colonne di una stringGrid, a partire dalla fixedCol.
Nella mia stringGrid che ho chiamato GridMovvComune ho disegnato 9 colonne e x Righe(x dipende dal numero di righe occorrenti).
Le proprietà delle colonne sono state impostate, anche per i titoli, nella fase di disegno, però alcune di esse possono contenere un titolo diverso a seconda della procedura che andrà a riempirne le celle.
Visto che normalmente una cella può essere valorizzata con un'istruzione del tipo:
Form6.GridMovvComune.Cells[colonna, riga;]= 'nuovo valore';
pensavo che ciò valesse anche per i titoli delle varie colonne.
Invece NO.
Infatti pur avendo verificato il nuovo contenuto di tutte le celle interessate
Form6.GridMovvComune.Cells[4,0]:= 'VOCE DI CASSA'; // [4, 0] -> [orizzontale(colonna), verticale(riga)] ;
Form6.GridMovvComune.Cells[5,0]:= 'CODICE VOCE';
Form6.GridMovvComune.Cells[6,0]:= 'VOCE DI CONTROPARTITA';
Form6.GridMovvComune.Cells[7,0]:= 'CODICE VOCE';
for i:= 0 to 7 do
begin
WriteLn('Form6.GridMovvComune.Cells[' + IntToStr(i) + ',0]= ' + Form6.GridMovvComune.Cells[i,0]);
end;
la griglia si presenta come nell'immagine allegata.
Pur non avendo individuato una propietà Text, succede proprio come se la Form6.GridMovvComune.Cells[colonna, riga;]= 'nuovo valore'; agisse su una proprietà diversa dalla .caption.
Intanto non sono in grado di individuare il percorso tecnico per impostare il nuovo valore nella caption del titolo di una colonna.
Che ci sia un vincoio per le FixedCols e le FixedRows?
Ciao, io facendo così ottengo correttamente i titoli nella prima riga (intestazione):
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Grids, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
for i:= 0 to 7 do
begin
StringGrid1.Cells[i, 0] := 'Prova '+i.ToString;
end;
end;
end.
E ho il vincolo di una fixedcol e fixedrow.
Non è che qualche altra parte del codice và a cancellare o sovrascivere quelle celle ?.
Ciao
Ho provato il codice che mi hai suggerito, ma viene modificata solamente la 1a cella della 1a colonna (fixed).
Il resto rimane inalterato.
Non è che qualche altra parte del codice và a cancellare o sovrascivere quelle celle ?.
No, comunque, per sicurezza, ho provando limitando la procedura alle sole istruzioni:
procedure FaiGridDescr(); // Ricerca per Descrizione
. . .
begin
for i:= 0 to 8 do
begin
Form6.GridMovvComune.Cells[i, 0] := 'Prova ' + i.ToString;
end;
for i:= 0 to 8 do
begin
WriteLn('Form6.GridMovvComune.Cells[' + IntToStr(i) + ',0]= ' + Form6.GridMovvComune.Cells[i,0]);
end;
end;
e non è cambiato niente.
Ho risolto in parte così:
for i:= 0 to Form6.GridMovvComune.Columns.Count - 1 do
begin
Form6.GridMovvComune.Columns[i].Title.Caption := 'cella.1-Col.' + i.ToString;
end;
Dico "in parte" perchè vengono modificato soltanto le Caption delle cella di testa delle colonne non fixed. Infatti la prima cella della prima colonna che è di tipo fixed è modificabile sempre con lì'struzione
Form6.GridMovvComune.Cells[0,0]:= 'N.Pro';