Hallo,
Habe mir eine eigene Komponente aus der TCustomComboBox programmiert. Diese funktioniert auch problemlos (kein Fehler bei der Compilierung). Wenn ich die Komponente in ein Programm einbaue, startet dieses auch problemlos, allerdings erzeuge ich eine
Exception direkt nach dem Start.
Hier der Quellcode für die Komponente:
Delphi-Quellcode:
unit StageSelect;
interface
uses
SysUtils, Classes, Controls, StdCtrls;
const Ext_Lib1 = '
D:\Tischsteuerung\MMC.dll';
//const Ext_Lib2 = 'D:\Tischsteuerung\E816_DLL.dll';
type TTische =(Verschiebetisch1, Verschiebetisch2, PiezoVerschiebetisch);
type
TStageSelect =
class(TCustomComboBox)
private
bVerbindungstest: boolean;
FID1: integer;
FTisch: TTische;
FIndex: integer;
procedure GetID(Value: integer);
{ Private-Deklarationen }
protected
{ Protected-Deklarationen }
public
property ID1:integer
read FID1
write GetID;
function Verbindungstest(Objekt: TTische): integer;
{ Public-Deklarationen }
published
property Tisch: TTische
read FTisch
write FTisch;
{ Published-Deklarationen }
end;
procedure Register;
function MMC_getReport(pCmd,psRead:PChar):integer;
stdcall external Ext_Lib1;
//function E816_IsConnected(ID: integer): boolean; stdcall external Ext_Lib2;
implementation
procedure TStageSelect.GetID(Value: integer);
begin
if Value <> ID1
then ID1 := Value;
end;
procedure Register;
begin
RegisterComponents('
Samples', [TStageSelect]);
end;
function TStageSelect.Verbindungstest(Objekt: TTische): integer;
var psRead:
array[0..500]
of Char;
begin
if Objekt
in [Verschiebetisch1,Verschiebetisch2]
then result := MMC_getReport('
TS',psRead);
end;
end.
Hier die Fehlermeldung, die erscheint, wenn die Komponente in ein Projekt eingebaut wurde:
"Im Projekt Project1.exe ist eine
Exception der Klasse EReadError mit der Meldung'Eigenschaft Tisch existiert nicht.' aufgetreten."
Kann mir einer sagen, wie ich die Komponente abändern muss, damit dies nicht mehr vorkommt.
Vielen Dank im Vorraus
BAMatze