Vielleicht folgendes als Ansatz:
Delphi-Quellcode:
Unit Unit1;
Interface
Uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
StdCtrls,
Grids;
Type
TForm1 =
Class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Procedure Button1Click(Sender: TObject);
Procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
Var CanSelect: Boolean);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
End;
TSchaltung =
Record
dDatum: TDate;
iStunde: Integer;
iLaenge: Integer;
cPreis: Currency;
sDiv:
String;
End;
TSchaltungen =
Class(TObject)
private
Container:
Array Of TSchaltung;
End;
Var
Form1: TForm1;
Implementation
{$R *.dfm}
Procedure TForm1.Button1Click(Sender: TObject);
Var
Schaltungen: TSchaltungen;
Schaltung1: TSchaltung;
Schaltung2: TSchaltung;
Begin
Schaltungen := TSchaltungen.Create;
Schaltung1.sDiv := '
Diverser Text zu Schaltung 1';
Schaltung2.sDiv := '
Diverser Text zu Schaltung 2';
SetLength(Schaltungen.Container, 2);
Schaltungen.Container[0] := Schaltung1;
Schaltungen.Container[1] := Schaltung2;
StringGrid1.Objects[1, 1] := Schaltungen;
End;
Procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
Var CanSelect: Boolean);
Begin
ShowMessage(TSchaltungen(StringGrid1.Objects[1, 1]).Container[0].sDiv);
End;
End.
Edit: Erläuterung
Du hast eine Klasse abgeleitet von TObject. Du erzeugst für jede StringGrid-Zelle, für welche Du eine Schaltung hinterlegen willst, eine Instanz dieser Klasse.
Die Klasse beinhaltet einen Container; nämlich Dein Array, welches Records speichert, welche jeweils eine Schaltung repräsentieren.
Ich würde nun so vorgehen, dass ich eine Zelle auswähle. Dann klicke ich in einer Toolbar o.ä. einen Edit-Knopf, welcher einen Dialog öffnet. Dort werden dann die Schaltungen für diese Zelle angelegt/editiert.
In diesem Moment erzeugst Du also ein Objekt vom Typ TSchaltungen und für jede Schaltung einen record TSchaltung.
Alle Schaltungen legst Du in Deinem Array ab und ordnest Dein Objekt der aktuellen Zelle zu. Als Wert zeigst Du dann die Anzahl Schaltungen in Deinem Container an.
Sorry, wenn das etwas wirr klingt - ich hoffe, Du kommst damit klar