Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit X10 Fernbedienung (https://www.delphipraxis.net/74841-problem-mit-x10-fernbedienung.html)

Delphi Star 9. Aug 2006 13:45


Problem mit X10 Fernbedienung
 
Ich habe eine X10 Fernbedienung und die dazugehörigen Treiber. Dem Treiber lag die Datei x10net.dll bei, diese habe ich über "ActiveX importieren..." unter Delphi 7 PE installiert. Die darauf hin hinzugefügte Komponente "X10Interface", habe ich auf das Formular gezogen. Dadurch wurden unter "uses" die Klassen "OleCtrls" und "X10_TLB" hinzugefügt. Danach habe ich unter "OnX10Command" folgendes Ereignis erstellt:
Delphi-Quellcode:
procedure TForm1.X10Interface1X10Command(ASender: TObject;
  const bszCommand: WideString; eCommand: TOleEnum; lAddress: Integer;
  EKeyState: TOleEnum; lSequence: Integer; eCommandType: TOleEnum;
  varTimestamp: OleVariant);
begin
  color:= clgreen; //zum Testen
end;
Das Compilieren hat auch ganz normal funktioniert. Sobald ich allerdings eine Taste auf der Fernbedienung drücke und die eben aufgeführte Procedure aufgerufen wird, bekomme ich folgende Fehlermeldung:
Zitat:

Zitat von Benachrichtung über Debugger-Exception
Im Projekt Project1.exe ist eine Exception der Klasse
EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei
Adresse 004593DF in Modul 'Project1.exe'. Lesen von Adresse
AAD5E94E'. Prozess wurde angehalten. Mit Einzelne Anweisung
oder Start fortsetzen.


omata 9. Aug 2006 13:49

Re: Problem mit X10 Fernbedienung
 
Hallo Delphi Star,

ändere mal den Typ von TimeStamp in TDateTime.

Edit: Das muss dann auch in der Unit X10_TLB beim Typ TX10InterfaceX10Command gemacht werden.

Gruss
Thorsten

Delphi Star 9. Aug 2006 14:03

Re: Problem mit X10 Fernbedienung
 
Habe ich gemacht, es kommt aber immer noch der gleiche Fehler.

omata 9. Aug 2006 14:09

Re: Problem mit X10 Fernbedienung
 
Hallo Delphi Star,

sorry hatte deinen Text nicht vollständig gelesen. Da du die Komponente aus der Komponentenleiste nimmst, wird wohl immer noch der alte Code benutzt. Kopiere einfach die geänderte Unit X10_TLB in dein Projektverzeichnis und füge sie zum Projekt hinzu. Dann erstellst du die Komponente einfach selber...

Delphi-Quellcode:
interface

uses
  ... X10_TLB ...
:
  private
    { Private-Deklarationen }
    FX10Interface: TX10Interface;
:

procedure TForm.FormCreate(Sender: TObject);
begin
  FX10Interface:=TX10Interface.Create(Self);
  FX10Interface.Parent:=Self;
  FX10Interface.OnX10Command:=FX10Interface1X10Command;
end;

procedure TForm.FormDestroy(Sender: TObject);
begin
  FX10Interface.Free;
end;

procedure TForm.FX10Interface1X10Command(ASender: TObject;
  const bszCommand: WideString; eCommand: TOleEnum; lAddress: Integer;
  EKeyState: TOleEnum; lSequence: Integer; eCommandType: TOleEnum;
  varTimestamp: TDateTime);
begin
...
end;
Gruss
Thorsten

Delphi Star 9. Aug 2006 14:24

Re: Problem mit X10 Fernbedienung
 
Ich habe die Komponente, jetzt so eingebunden wie du es beschrieben hast. Außerdem habe ich in "Unit1" alle Vorkommen von "vartimestamp" durch "vartdatetime" ersetzt. In der "X10_TLB.pas", die ich nun in mein Projektverzeichnis kopiert habe, habe ich auch alle Vorkommen von "vartimestamp" durch "vartdatetime" ersetzt. Allerdings kommt der Fehler immer noch.

omata 9. Aug 2006 14:28

Re: Problem mit X10 Fernbedienung
 
Zitat:

Zitat von Delphi Star
Außerdem habe ich ... alle Vorkommen von "vartimestamp" durch "vartdatetime" ersetzt. In der "X10_TLB.pas", die ich nun in mein Projektverzeichnis kopiert habe, habe ich auch alle Vorkommen von "vartimestamp" durch "vartdatetime" ersetzt.

Der Variablenname kann varTimestamp bleiben, der Typ muss von OleVariant in TDateTime geändert werden.

Gruss
Thorsten

Delphi Star 9. Aug 2006 15:33

Re: Problem mit X10 Fernbedienung
 
Oh, ich hatte mich auch schon gewundert. Jetzt geht es auch.
Danke :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 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