Komponente erweitern spuckt Fehler aus
-
Hallo.
Ich habe eine (Pascal) Komponente und möchte diese um eine Text Eigenschaft erweitern
private
FMyText: WideString;
published
property MyText: WideString read FMyText write FMyText;Kann die Anwendung auch compilieren, aber exe sagt ntdll.dll error.
Was mach ich denn falsch?System:
win2k
cbuilder5
-
Soweit ich weiß musst du dem read-statement eine Funktion zuweisen und nicht die Variable direkt (war zumindest bei Variablen im VCL-Stiel so)...
-
Danke, das habe ich probiert. Jedoch bekomme ich jetzt einen external Fehler :(:(:(
private FCName: WideString; public function GetCName: WideString; procedure SetCName(Value: WideString); property CName: WideString read GetCName write SetCName; procedure Kompo.SetCName(Value: WideString); begin FCName := Value; end; function Kompo.GetCName; begin Result := FCName; end;
Ergebnis
[Linker Fehler] Unresolved external '__fastcall Kompo::SetCName(System::AnsiString)' referenced from ..\UNIT1.OBJSo erstelle ich aus der Pascal Komponente eine CBuilder Komponente:
Ich ändere Pascal Datei und mache dann mittels bpr2mak und make(batchdatei) daraus hpp und obj Dateien. In der .hpp sind die Funktionköpfe auch aufgelistet. Erzeuge alle Projektdateien neu.. aber dann kommt der Fehler
-
Richtig muss es natürlich so heissen
private FCName: WideString; function GetCName: WideString; procedure SetCName(Value: WideString); public property CName: WideString read GetCName write SetCName; procedure Kompo.SetCName(Value: WideString); begin FCName := Value; end; function Kompo.GetCName; begin Result := FCName; end;
Kompo->CName = "TestString";
Leider immer der external Fehler
-
Auch wenn mir wohl keiner helfen kann
erwähne ich mal noch, das der Code 100% in Ordnung ist!
Denn
procedure TForm1.Button1Click(Sender: TObject); begin kompo.CName := 'test'; end; procedure TForm1.Button2Click(Sender: TObject); begin Caption := kompo.CName; end;
funktioniert prima.
Mit diesen Befehlen compiliere ich das Ganze.
C:\Programme\Borland\CBuilder5\Bin\bpr2mak.exe -t kompo.bpk
C:\Programme\Borland\CBuilder5\Bin\make.exe -B -f kompo.mak
C:\Programme\Borland\CBuilder5\Bin\make.exe -B -f dsgn_kompo.makErstellen tut er wie erwähnt dann eine .hpp und .obj und da muss irgendwo der Fehler liegen. In der .hpp ist SetCName enthalten. Warum geht es aber nicht?
-
Ich habs gefunden *juhu*
-
Hallo
zum guten Ton gehoert es seine Loesung allen mitzuteilen !
MfG
Klaus