Ich bin grade dabei ein Projekt von Delphi7 auf Delphi 2007 umzustellen beim Kompilieren erschien eine Warnung mit der ich nicht
sonderlich viel anfangen kann, die Hilfe zu dem Fehler (W1055) brachte auch nicht viel. Klar könnte ich das so machen wie in
der Hilfe beschrieben jedoch Frag ich mich was das bedeutet.
Die Warnung tritt in folgender
Unit auf...
Delphi-Quellcode:
unit uSerialThread;
interface
uses
Classes, Windows;
type
tEvent =
Procedure (chr : Char)
Of Object;
//Ereignis Prozedur Typ
tSerial =
class(TThread)
private
{ Private-Deklarationen }
FOnRead : tEvent;
//Methodenzeiger Variable
protected
procedure Execute;
override;
published
Property OnRead: tEvent
read FOnRead
write FOnRead;
//Eigenschaft für das Ereignis
public
ThCom: THandle;
//Com Handle
end;
implementation
{ Wichtig: Methoden und Eigenschaften von Objekten in visuellen Komponenten dürfen
nur in einer Methode namens Synchronize aufgerufen werden, z.B.
Synchronize(UpdateCaption);
und UpdateCaption könnte folgendermaßen aussehen:
procedure tSerial.UpdateCaption;
begin
Form1.Caption := 'Aktualisiert in einem Thread';
end; }
{ tSerial }
procedure tSerial.Execute;
Var
w : DWord;
P : Pointer;
//Zeiger auf Lesepuffer
C : Char;
//Lesepuffer
begin
P := @C;
//P zeigt auf C
Repeat
If (ReadFile(ThCom, P^, 1, W,
nil))
Then Begin //1 Zeichen lesen
If Assigned(OnRead)
AND (W <> 0)
Then OnRead(C);
//Ereignis auslösen
End;
{if}
Until Terminated;
//Endlos Schleife bis die Verbindung getrennt wird
end;
end.
Und die Warnung lautet...
Zitat:
PUBLISHED verursachte, dass
RTTI ($M+) zu Typ '%s' hinzugefügt wurde (W1055)
--------------------------------------------------------------------------------------
Sie haben einen 'PUBLISHED'-Abschnitt zu einer Klasse hinzugefügt, die nicht mit der Option {$M+}/{$TYPEINFO ON} compiliert wurde,
oder ohne Ableitung von einer Klasse, die mit der Option {$M+}/{$TYPEINFO ON} compiliert wurde.
Die Standardprozedur TypeInfo erwartet einen Typbezeichner als Parameter. Im obigen Beispiel stellt NotType keinen Typbezeichner dar.
Um diesen Fehler zu vermeiden, stellen Sie sicher, dass Sie nur mit der Option {$M+}/{$TYPEINFO ON} compilieren, oder von einer
Klasse ableiten, die mit der Option {$M+}/{$TYPEINFO ON} compiliert wurde.
Meine Frage ist kann ich die Klassen Definition nicht so ändern das die Warnung verschwindet oder muß ich das wie in der
Hilfe beschrieben lösen.