Y
@Braunstein
sorry ich mache das immer, hatte nie Probleme.
Wenn es nicht funzen würde, würde es an der Stelle Kacheln.
Weil man nur ein gültiges Handel bekommt, wenn es sich auch wirklich um den gekasteten Typ handelt
Hier mal das Beispiel aus der Hilfe mit dem einfachen cast:
typedef struct AList
{
int I;
char C;
} TAList;
typedef TAList* PAList;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
PAList AStruct;
TList *MyList = new TList;
// fill the TList
AStruct = new TAList;
AStruct->I = 100;
AStruct->C = 'Z';
MyList->Add(AStruct);
AStruct = new TAList;
AStruct->I = 100;
AStruct->C = 'X';
MyList->Add(AStruct);
// Liste durchlaufen und Elemente auf der Zeichenfläche
// einer PaintBox-Komponente ausgeben.
int Y = 10; // Position auf der Zeichenfläche
for (int i = 0; i < MyList->Count; i++)
{
AStruct = (PAList) MyList->Items[i];
PaintBox1->Canvas->TextOut(10, Y, IntToStr(AStruct->I));
Y += 30; // Y-Wert erneut erhöhen
PaintBox1->Canvas->TextOut(10, Y, AStruct->C);
Y += 30; //Y-Wert erhöhen
}
// Aufräumen: Listeneinträge und Liste freigeben
for (int i = 0; i < MyList->Count; i++)
{
AStruct = (PAList) MyList->Items[i];
delete AStruct;
}
delete MyList;
}