AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Eine"array of set of Byte" an eine andere Form übergeben?
Thema durchsuchen
Ansicht
Themen-Optionen

Eine"array of set of Byte" an eine andere Form übergeben?

Ein Thema von Hallo_Thomas · begonnen am 29. Jul 2006 · letzter Beitrag vom 29. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

Eine"array of set of Byte" an eine andere Form übe

  Alt 29. Jul 2006, 13:34
Hallo,

wie übergebe ich eine array of set of Byte an eine andere Form(Klasse)?

Delphi-Quellcode:
type
  TSetOfByte = array of set of Byte;

procedure TForm2.Button2Click(Sender: TObject);
var Werte:TSetOfByte;
begin
  SetLength(Werte,5);
  Form1.SetLaenge(Werte,Werte);
  Label1.Caption:=IntToStr(length(Werte));
end;

procedure TForm1.SetLaenge(Wert:TSetOfByte;var Werte:TSetOfByte);
begin
  SetLength(Werte,10);
end;
[Fehler] E2010 Inkompatible Typen: 'Unit1.TSetOfByte' und 'unit2.TSetOfByte'
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Eine"array of set of Byte" an eine andere Form

  Alt 29. Jul 2006, 13:37
Hallo,

Du darfst Deinen Typen nur einmal deklarieren. Offensichtlich deklarierst Du ihn aber in jeder Unit erneut. Damit sind die beiden Typen, trotz gleicher Deklaration, für den Compiler unterschiedlich.

Gruß
xaromz
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Eine"array of set of Byte" an eine andere Form

  Alt 29. Jul 2006, 13:45
Jo, wie deklariere ich in 2 forms den typen nur einmal?
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Eine"array of set of Byte" an eine andere Form

  Alt 29. Jul 2006, 13:47
Hallo,
Zitat von Hallo_Thomas:
Jo, wie deklariere ich in 2 forms den typen nur einmal?
Am Besten deklarierst Du den Typen in einer eigenen Unit und bindest diese in beiden Units ein.

Gruß
xaromz
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Eine"array of set of Byte" an eine andere Form

  Alt 29. Jul 2006, 13:54
Jo, danke, klappt erst mah bestens!!!!!!!!!!
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Eine"array of set of Byte" an eine andere Form

  Alt 29. Jul 2006, 14:16
Wieso sind die eigentlich unterschiedlich? TSetOfByte ist doch nur ein Alias.

Daher müsste das doch eigentlich möglich sein.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Eine"array of set of Byte" an eine andere Form

  Alt 29. Jul 2006, 14:24
Moin Manuel,

wenn sie in unterschiedlichen Units deklariert sind, sind sie für den Compiler unterschiedlich.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Eine"array of set of Byte" an eine andere Form

  Alt 29. Jul 2006, 14:54
Obwohl sie nur Aliases sind? Ich meine, sie besitzen ja nicht mal eine eigene RTTI.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#9

Re: Eine"array of set of Byte" an eine andere Form

  Alt 29. Jul 2006, 15:03
Hi,
es sind zwar nur Aliase, aber sie gelten ja in der gesamten Unit. Würdest du nun das Alias an einer Stelle ändern, z.B. weil du jetzt ein Array of set of Integer hast, dann hast du halt ein paar Probleme.
Klar, normalerweise könnte jetzt wieder der Compiler erkennen das die Aliase nun unterschiedliche Datentypen behandeln, aber Delphi kann das schon mal nicht. Nein, es könnte (da müsste man jetzt aber eher einen Fall konstruieren) dazu kommen, dass du einen theoretisch noch kompatiblen Typ auf der anderen Seite hast und es dann zu Problemen kommt die du nicht so leicht findest. Es ist einfach sauberer, wenn du diese Trennung vornimmst (obwohl ich persönlich mir auch schon häufiger gewünscht habe, dass Delphi da mal etwas flexibler wird).

Gruß Der Unwissende
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#10

Re: Eine"array of set of Byte" an eine andere Form

  Alt 29. Jul 2006, 15:03
Zitat von 3_of_8:
Obwohl sie nur Aliases sind? Ich meine, sie besitzen ja nicht mal eine eigene RTTI.
Was hat die RTTI damit zu tun? Mit der bekommst du nur den Aufbau zurück. Liefert denn TypeInfo(TSetOfByte) von der einen Unit und der der anderen Unit etwa den selben Zeiger zurück?

Aliase definierst du nur, wenn du bereits einen Namen für einen Typen hast. Ein direkt deklariertes Array oder Record werden niemals Aliase, auch wenn du Haar genau das selbe Array oder den selben Record definierst. Das ist eben eie Vorgabe des PASCAL Standards, welchen Delphi in diesem Fall einhält.
Delphi-Quellcode:
type
  TTestRec_1 = array[0..10] of Integer;
  TTestRec_2 = array[0..10] of Integer;

  TTest_1 = TTestRec_1;
  TTest_2 = TTestRec_1;
TTestRec_1 und TTestRec_2 sind zwei verschiedene Typen. TTest_1 und TTest_2 hingegen Aliase für TTestRec_1.
  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 22:46 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