Einzelnen Beitrag anzeigen

BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Fehler bei der Verwendung von eigener Komponente

  Alt 24. Sep 2008, 13:44
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
  Mit Zitat antworten Zitat