AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Fehler bei der Verwendung von eigener Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei der Verwendung von eigener Komponente

Ein Thema von BAMatze · begonnen am 24. Sep 2008 · letzter Beitrag vom 24. Sep 2008
Antwort Antwort
Seite 1 von 2  1 2      
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
grenzgaenger
(Gast)

n/a Beiträge
 
#2

Re: Fehler bei der Verwendung von eigener Komponente

  Alt 24. Sep 2008, 15:08
propiere mal eine "default" eigenschaft hinter der published property anzufügen.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#3

Re: Fehler bei der Verwendung von eigener Komponente

  Alt 24. Sep 2008, 15:18
Ich vermisse da ein klitzekleines create()
- oder braucht man das etwa nicht?
Ralph
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#4

Re: Fehler bei der Verwendung von eigener Komponente

  Alt 24. Sep 2008, 15:20
Zitat von taaktaak:
Ich vermisse da ein klitzekleines create()
- oder braucht man das etwa nicht?
wird das nicht vom elternobjekt geerbt?
  Mit Zitat antworten Zitat
Roachford
(Gast)

n/a Beiträge
 
#5

Re: Fehler bei der Verwendung von eigener Komponente

  Alt 24. Sep 2008, 15:32
Zitat von grenzgaenger:
Zitat von taaktaak:
Ich vermisse da ein klitzekleines create()
- oder braucht man das etwa nicht?
wird das nicht vom elternobjekt geerbt?
Klar, aber initialisiert trotzdem nicht FTisch - schliesslich kennt er den nichtmal persönlich...

Ist Müll da keine Klasse. Der Member wird natürlich initialisert mit dem ersten Typ der Aufzählung.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: Fehler bei der Verwendung von eigener Komponente

  Alt 24. Sep 2008, 15:51
Hallo,

schau mal da --> http://www.google.de/search?hl=de&q=...eadError&meta=
Da hilft Dir eventuell irgend ein Link weiter (z. B. erster Link, dort EReadError suchen - entspricht wohl der Info aus der Delphi-Hilfe).

EReadError tritt meines Wissens auf, wenn beim Erstellen eines Formulares etwas aus der Resource gelesen werden soll, was da nicht drin ist. Vermutlich gibt es in der DFM-Datei zum Formular irgendwo einen Fehler.

DFM mal als Text anschauen und dann wieder als Formular, manchmal werden dann Fehler beseitigt. Anschließend neu kompilieren und nochmal versuchen. Ansonsten ist Delphi eventuell nicht in der Lage, Deinen Nachfahren von TCustomComboBox richtig zu erstellen.

Stephan
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Fehler bei der Verwendung von eigener Komponente

  Alt 24. Sep 2008, 15:53
***

Vergesst den Post. Irgendwie war ich von einer Klasse bei TTische ausgegangen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

Re: Fehler bei der Verwendung von eigener Komponente

  Alt 24. Sep 2008, 16:07
Hallo,

Delphi-Quellcode:
type TTische =(Verschiebetisch1, Verschiebetisch2, PiezoVerschiebetisch);
.
.
.
  FTisch: TTische;
FTisch müsste meiner Meinung nach ein Set Of TTische sein.

Delphi-Quellcode:
type TTisch =(Verschiebetisch1, Verschiebetisch2, PiezoVerschiebetisch);
     TTische = set of TTisch;
.
.
.
  FTisch: TTische;
Stephan
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

Re: Fehler bei der Verwendung von eigener Komponente

  Alt 24. Sep 2008, 16:16
Wieso? Ein Set müsste es IMHO sein, wenn verschiedene Kombinationen möglich sind.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

Re: Fehler bei der Verwendung von eigener Komponente

  Alt 24. Sep 2008, 16:22
Hallo,
Zitat von DeddyH:
Wieso? Ein Set müsste es IMHO sein, wenn verschiedene Kombinationen möglich sind.
die Plausibilität muss in den Gettern und Settern geprüft werden.
Mir ist die Umsetzung eines Konstrukts, wie hier beschrieben, noch nicht in der Form geglückt, dass die Eigenschaft auch im Objektinspektor zu sehen ist und (korrekt) in der Formulardatei abgespeichert wurde, sprich ohne den EReadError (Das heißt jetzt aber nicht, das es nicht vielleicht doch irgendwie ginge )

Stephan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz