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;
Soll ich da einen Bugreport schreiben ?
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;
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.
Mathias hat geschrieben:Dynamische Klassen (class) dürften nicht funktionieren, das setzt ja eine dynamische Speicherverwaltung voraus.
Das ist eines der wenigen Vorteile, die C++ gegenüber Pascal hat.
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);