Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Inkompatible Typen (https://www.delphipraxis.net/49925-inkompatible-typen.html)

Nakaron 18. Jul 2005 12:42


Inkompatible Typen
 
Delphi-Quellcode:
// Meine beiden Records
type
  TUserInfo = record
    Name : String;
    Email : String;
    Status: char;
    IP : String;
  end;

type
  TCommBlock = record  // Kommunikationsblock (Server <-> Client)
                 Command,
                 MyUserName,                // Sender der Nachricht
                 Msg,                       // Nachricht
                 ReceiverName: string[100]; // Empfänger
                 UserRecord: array of TUserInfo; // Alle User die Online sind
               end;

//-------------------------------------------------

procedure TMain.GetUserInfo({...});
var
//...
  UserList : array of TUserInfo;
  NewCommBlock: TCommBlock;
//...
begin
//...
  NewCommBlock.UserRecord := UserList; // <-- Inkompatible Typen; Nur warum?
//...

Speedmaster 18. Jul 2005 12:45

Re: Inkompatible Typen
 
Einfach dein Array als Typen machen also so:
Delphi-Quellcode:
TUserRecord = array of TUserInfo;
Dann den Typen angeben!

KrasserChecker 18. Jul 2005 12:47

Re: Inkompatible Typen
 
Mist, zu langsam...

Für Delphi sind die beiden Deklarationen "aaray of TUserInfo" zwei verschiedene Typen. Sie sehen nur zufalläig gleich aus. Aber das kann Delphi nicht wissen.

Daher mußt Du den Typ selbst deklarieren:

Delphi-Quellcode:
// Meine beiden Records
type
  TUserInfo = record
    Name : String;
    Email : String;
    Status: char;
    IP : String;
  end;

  TUserInfoArray: array of TUserInfo;

type
  TCommBlock = record  // Kommunikationsblock (Server <-> Client)
                 Command,
                 MyUserName,                // Sender der Nachricht
                 Msg,                       // Nachricht
                 ReceiverName: string[100]; // Empfänger
                 UserRecord: TUserInfoArray; // Alle User die Online sind
               end;

//------------------------------------------------- 

procedure TMain.GetUserInfo({...});
var
//...
  UserList : TUserInfoArray;
  NewCommBlock: TCommBlock;
//...
begin
//...
  NewCommBlock.UserRecord := UserList; // <-- Inkompatible Typen; Nur warum? 
//...

Nakaron 18. Jul 2005 12:48

Re: Inkompatible Typen
 
geht nicht. sieht nun so aus:

Delphi-Quellcode:
type
  TTUserInfo = record
    Name : String;
    Email : String;
    Status: char;
    IP : String;
  end;

type
TUserInfo = array of TTUserInfo;

type
  TCommBlock = record  // Kommunikationsblock (Server <-> Client)
                 Command,
                 MyUserName,                // Sender der Nachricht
                 Msg,                       // Nachricht
                 ReceiverName: string[100]; // Empfänger
                 UserRecord: array of TUserInfo;
               end;
immernoch selbe fehlermeldung

Speedmaster 18. Jul 2005 12:50

Re: Inkompatible Typen
 
Du musst doch nicht mehr array of TUserInfo machen, wenn du den Typen als Array Deklariert hast!

Nakaron 18. Jul 2005 12:51

Re: Inkompatible Typen
 
ach mist, hatte ich vergessen zu ändern. thx euch beiden


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