Man sieht es, weil die LED an BP5 nicht an geht.
Code: Alles auswählen
type
TMyClass = class
end;
var
MyClass: TMyClass;
begin
MyClass := TMyClass.Create;
DDRB := 1 shl BP5;
PORTB := 1 shl BP5;
Code: Alles auswählen
type
TMyClass = class
end;
var
MyClass: TMyClass;
begin
MyClass := TMyClass.Create;
DDRB := 1 shl BP5;
PORTB := 1 shl BP5;
Schlussendlich nicht, obwohl auch Arduino mit Classen arbeitet.Du möchtest keine Klassen auf dem AVR verwenden.
Code: Alles auswählen
Type TUART = object
Procedure Init(UARTChannel: Byte);
Procedure Send(AValue: Byte);
Procedure Send(AValue: UInt32);
end;
var
UART1, UART2: TUART;
begin
UART1.Init(1);
UART2.Init(2);
UART1.Send(123);
end;
Das wird wohl auch der Grund sein, wieso das eine dynamische Array nicht geht.Dynamische Klassen (class) dürften nicht funktionieren, das setzt ja eine dynamische Speicherverwaltung voraus.
Da muss ich zustimmen, ein Object ist vergleichbar mit den Classen von C++, man kann es statisch und dynamisch verwenden,Auf dem Desktop ist object eher ungewöhnlich, obwohl die Nutzung eigentlich komfortabler ist als bei Klassen, solange man eben die Instanzen zum Zeitpunkt des Programmierens schon zuweisen kann.
Wo siehst du einen Vorteil?Mathias hat geschrieben:Das ist eines der wenigen Vorteile, die C++ gegenüber Pascal hat.Dynamische Klassen (class) dürften nicht funktionieren, das setzt ja eine dynamische Speicherverwaltung voraus.
Das ist aber bei Objecten von Pascal auch der Fall. Hier einen Ausschnitt aus Turbo-Vison von TP:C++ kenn ich nicht, aber es scheint, dass man dynamische Instanzen immer mit Pointern verwalten muss (eher hässlich).
Code: Alles auswählen
var
Window: PMeinFenster;
Dialog: PMeinDialog;
begin
Window := New(PMeinFenster, Init(R, 'Das erste Fenster von Koala', wnNoNumber));
DeskTop^.Insert(Window);