Thema: Delphi Frage zu TStringGrid

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Frage zu TStringGrid

  Alt 20. Feb 2010, 12:56
Du könntest Dir eine Klasse deklarieren und diese mit AddObject einfügen. Beispiel (nur heruntergetippt und nicht groß getestet):
Delphi-Quellcode:
{$R *.dfm}

type
  TTestclass = class
  private
    FNumber: integer;
    FText: string;
  public
    property Number: integer read FNumber write FNumber;
    property Text: string read FText write FText;
  end;

procedure TForm1.FormCreate(Sender: TObject);
var Testclass: TTestclass;
    i: integer;
begin
  StringGrid1.Rows[1].Clear;
  StringGrid1.Rows[1].Add('');
  for i := StringGrid1.FixedCols to StringGrid1.ColCount - 1 do
    begin
      Testclass := TTestclass.Create;
      Testclass.Number := i;
      Testclass.Text := 'Test';
      StringGrid1.Rows[1].AddObject(Testclass.Text,Testclass);
    end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
var i,j: integer;
begin
  for i := 0 to StringGrid1.RowCount - 1 do
    for j := 0 to StringGrid1.ColCount - 1 do
      StringGrid1.Rows[i].Objects[j].Free;
end;

procedure TForm1.StringGrid1Click(Sender: TObject);
var Testclass: TTestclass;
begin
  Testclass := TTestclass(StringGrid1.Rows[StringGrid1.Row].Objects[StringGrid1.Col]);
  if Assigned(Testclass) then
    ShowMessage(IntToStr(Testclass.Number));
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat