Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   inkompatible types - wer weiss rat (https://www.delphipraxis.net/188664-inkompatible-types-wer-weiss-rat.html)

wschrabi 26. Mär 2016 11:53

inkompatible types - wer weiss rat
 
`Hallo,
bekomme immer einen Compiler Error: (Incompatible Types)
WIes0? (Delphi XE6)
Delphi-Quellcode:
..


interface

uses
  System.SysUtils, System.Classes,System.SyncObjs,Generics.Collections,System.DateUtils,System.Types
  {$IFDEF ANDROID}
   ,android.hardware.usb.HID
  {$ENDIF}
  ;
..

  // das richte Type is in android.usb.HID TRichtung = (UP=1, DOWN=2, NONE=0);

  TUSB=class
  private

    function FReadReportRichtung(board:word):android.hardware.usb.HID.TRichtung;
    function FMyReSetReportRichtung(board:word):android.hardware.usb.HID.TRichtung;

    property ReadReportRichtung[board: word]: android.hardware.usb.HID.TRichtung read FReadReportRichtung write FMyReSetReportRichtung ;
    property ReadReportValid[board: word]: boolean read FReadReportValid;

   
   // function AllReadReportData(board: word; wert: double; richtung: TRichtung; valid: boolean): string ;
   
  end;
und dann weiter unten die Routine:

Delphi-Quellcode:
function TUSB.FMyReSetReportRichtung(board:word):android.hardware.usb.HID.TRichtung;

begin

   Result:=android.hardware.usb.HID.TRichtung(None);


end;
Kann man nur string oder intergers in eine Property schreiben? Mein Typ is TRICHTUNG.
DANKE für die HIlfe
mfg
walter

hoika 26. Mär 2016 12:02

AW: inkompatible types - wer weiss rat
 
Hallo,
nimm mal das TRichtung weg.


Heiko

haentschman 26. Mär 2016 15:30

AW: inkompatible types - wer weiss rat
 
Moin...8-)
@TE: Warum nur mußte ich deinen Beitrag mehrfach lesen? :gruebel:
Vieleicht zeigst du uns mal die entsprechende Codestelle (Deklarationen). Dann wird alles viel klarer. :wink:

haentschman 27. Mär 2016 09:59

AW: inkompatible types - wer weiss rat
 
Moin...:P
Delphi-Quellcode:
function TUSB.FMyReSetReportRichtung(board:word):android.hardware.usb.HID.TRichtung;
begin
  Result:=android.hardware.usb.HID.TRichtung(None);
end;
...ein Setter ist eine procedure und hat kein Result.

Nimm mal deine Getter und Setter Funktionen weg, setze den Cursor in diese Zeile
Delphi-Quellcode:
property ReadReportRichtung[board: word]: android.hardware.usb.HID.TRichtung read FReadReportRichtung write FMyReSetReportRichtung ;
und drücke SHIFT+CTRL+C
Damit werden die korrekten Prozedurrümpfe erstellt.

PS: Ich habe mit der Delphi-Referenz Suche auf die Schnelle keinen Eintrag für TRichtung gefunden. Was ist das? Ich glaube eher du brauchst nur eine "Standard" Property ohne Getter und Setter und ohne Index.
Delphi-Quellcode:
FReadReportRichtung: TRichtung;
.
.
property ReadReportRichtung: TRichtung read FReadReportRichtung write FReadReportRichtung ;

Sir Rufo 27. Mär 2016 11:02

AW: inkompatible types - wer weiss rat
 
Wenn man sich an die Naming-Conventions hält, dann kann man sich von der IDE sehr schön unter die Arme greifen lassen:
Delphi-Quellcode:
TUSB=class
  private
    property ReadReportRichtung[board: word]: android.hardware.usb.HID.TRichtung read GetReadReportRichtung write SetReadReportRichtung;
  end;
Jetzt noch innerhalb der Klassen-Deklaration ein beherztes SHIFT-STRG-C und die Setter- und Getter-Methoden werden von der IDE perfekt deklariert und auch gleich als leere Methodenrümpfe implementiert. Ausfüllen, fertig.

Weniger Arbeit, weniger Fehler, mehr Zeit für den Abwasch (TomatoBrotomat)


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