Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Aufzählungstyp per indy versenden..... (https://www.delphipraxis.net/110063-aufzaehlungstyp-per-indy-versenden.html)

Thomas83 12. Mär 2008 12:42


Aufzählungstyp per indy versenden.....
 
hi,

habe einen Aufzählungstyp und möchte diesen gerne per indy versenden.
Delphi-Quellcode:
Type
  TMyTyp = (mtEins,mrZwei,mtDrei);

...

var
  mytyp : TMyTyp;
begin
  mytyp := mtZwei;
  fIdTcpClient.WriteBuffer(mytyp,sizeof(TMyTyp)); //<-vielleicht so
  //oder doch
  case mytyp of
    mtEins : fIdTcpClient.WriteInteger(1);
    mtZwei : fIdTcpClient.WriteInteger(2);
    mtDrei : fIdTcpClient.WriteInteger(3);
  end;
  //...
end;

Neutral General 12. Mär 2008 12:44

Re: Aufzählungstyp per indy versenden.....
 
Hi,

Das müsste beides gehn und ich glaube es könnte sogar:

Delphi-Quellcode:
fIdTcpClient.WriteInteger(mytyp);
funktionieren.

Gruß
Neutral General

SirThornberry 12. Mär 2008 12:46

Re: Aufzählungstyp per indy versenden.....
 
den Typ kannst du nicht versenden aber eine den Wert einer Variablen dieses Types. Ein Aufzählungstyp ist auch nur ein ordinaler Wert daher kannst du die Funktionen zum versenden von ordinalen Werten verwenden.

Muetze1 12. Mär 2008 13:01

Re: Aufzählungstyp per indy versenden.....
 
Siehe auch (schon sprachlich) die Funktion Delphi-Referenz durchsuchenOrd()

Thomas83 12. Mär 2008 13:07

Re: Aufzählungstyp per indy versenden.....
 
Zitat:

Zitat von Neutral General
Hi,

Das müsste beides gehn und ich glaube es könnte sogar:

Delphi-Quellcode:
fIdTcpClient.WriteInteger(mytyp);
funktionieren.

Gruß
Neutral General

funktioniert nicht "ungültiger typ TmyTyp und integer"

Zitat:

Zitat von SirThornberry
den Typ kannst du nicht versenden aber eine den Wert einer Variablen dieses Types. Ein Aufzählungstyp ist auch nur ein ordinaler Wert daher kannst du die Funktionen zum versenden von ordinalen Werten verwenden.

möchte ja auch nicht den Typen versenden sondern die variable vom typ TmyTyp

Neutral General 12. Mär 2008 13:09

Re: Aufzählungstyp per indy versenden.....
 
Hi,

Dann versuch es so:

Delphi-Quellcode:
fIdTcpClient.WriteInteger(Integer(mytyp));
Gruß
Neutral General

SirThornberry 12. Mär 2008 13:55

Re: Aufzählungstyp per indy versenden.....
 
wie NeutralGenereal schon gepostet hat musst du casten. Das ist eine Eigenschaft von Delphi weshalb die Sprache auch für Anfänger so gut geeignet ist. Durch die Typen-Strenge passiert es nicht so schnell das man variablen verschiedenen types wild durcheinander würfelt.


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