Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - array[0..5] of TPoint
mimi - Mi 23.07.03 18:11
Titel: array[0..5] of TPoint
Hallo,
habe folgenden code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| type PAC_POINT = record x: Integer; y: Integer; end;
type PAC_DIR = (PAC_DIRNONE = 0, PAC_DIRLEFT = 1, PAC_DIRUP = 2, PAC_DIRRIGHT = 3, PAC_DIRDOWN = 4); const PAC_DIRS: array[0..5] of PAC_POINT = ( (0, 0), (-1, 0), (0,-1), (1, 0), (0, 1) ); |
wie kann man das richtig definieren
so gehts aufjedenfall nicht :crying:
Aya - Mi 23.07.03 18:30
*schaut verwirrt auf den Code* ..Hi.. :)
Versuch mal das:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| type PAC_POINT = Array[0..1] of Integer; PAC_DIR = (PAC_DIRNONE = 0, PAC_DIRLEFT = 1, PAC_DIRUP = 2, PAC_DIRRIGHT = 3, PAC_DIRDOWN = 4); end;
const PAC_DIRS: array[0..5] of PAC_POINT = ( (0, 0), (-1, 0), (0,-1), (1, 0), (0, 1) ); |
Au'revoir,
Aya~
Tino - Mi 23.07.03 18:33
Hallo!
Da du nicht genau geschrieben hast was genau du mit dem Code erreichen willst kann ich nur raten:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| type PAC_POINT = record x: Integer; y: Integer; end;
PAC_DIR = (PAC_DIRNONE, PAC_DIRLEFT, PAC_DIRUP, PAC_DIRRIGHT, PAC_DIRDOWN);
const PAC_DIRS: array[0..5] of PAC_POINT = ( (x: 0; y: 0), (x: -1; y: 0), (x: 0; y: -1), (x: 1; y: 0), (x: 0; y: 1) ); |
Keldorn - Mi 23.07.03 18:35
Hallo
Onlinehilfe,
record-konstanten im index eingeben
Quelltext
1:
| const PAC_DIRS: array[0..5] of Pac_POINT = ( (X:0; Y:0),(X:0; Y:0),(X:0; Y:0),(X:0; Y:0),(X:0; Y:0),(X:0; Y:0)) ; |
ein array 0..5 hat im übrigen 6 Elemente, nicht 5
edit: mist zu langsam
Mfg Frank
kurzer - Mi 23.07.03 19:07
| Zitat: |
| ein array 0..5 hat im übrigen 6 Elemente, nicht 5 |
Du vergisst das '\0' Element!
[NEU]
Ach quark! Das is ja nur bei C / C++ so. Richtig wäre hier 0..4, da 5 Elemente erstellt werden sollen.
mimi - Mi 23.07.03 19:16
@Keldorn
kurzer hat recht wir starten den array von 0 und nicht von eins ansonsten hättes du recht wenn wir in von 1 starten würden:)
Tino - Do 24.07.03 09:49
@mimi: Hat die Konstantendefinition denn jetzt geklappt?
Gruß
Tino
kurzer - Do 24.07.03 10:29
Ok! Wie es aussieht bedarf es jetzt mehr Erklärung!
Punkt 1: mimi und ich arbeiten am selben Projekt
Punkt 2: Es geht hier um die Nutzung einer DLL, die ich geschrieben hab, die auch super funktioniert.
Punkt 3: Das Problem ist, ich hab die DLL in C++ geschrieben und nun müssen spezielle Header nach Pascal übersetzt werden.
Header PAC_EXPORTS.H:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| #ifndef PAC_EXPORTS #define PAC_EXPORTS
#include "pac_types.h" // pac-types
// constructors PAC_BasicAI PAC_CreateBasicAI (PAC_POINT Position, PAC_ISFREEATPOINTXY ifapxy, bool Enabled = false); PAC_BasicAI PAC_CreateBasicAI (int x, int y, PAC_ISFREEATPOINTXY ifapxy, bool Enabled = false);
// destructor void PAC_DestroyBasicAI (PAC_BasicAI AI);
// Let's GO! void PAC_MoveBasicAI (PAC_BasicAI AI, int Steps);
// to change/get some data void PAC_SetPosition (PAC_BasicAI AI, int x, int y); void PAC_SetPosition (PAC_BasicAI AI, PAC_POINT Position); PAC_POINT PAC_GetPosition (PAC_BasicAI AI);
void PAC_SetEnabled (PAC_BasicAI AI, bool Enabled); bool PAC_GetEnabled (PAC_BasicAI AI);
void PAC_SetIsFreeFunc (PAC_BasicAI AI, PAC_ISFREEATPOINTXY ifapxy);
#endif // PAC_EXPORTS |
Header: PAC_TYPES.H
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| #ifndef PAC_TYPES #define PAC_TYPES
// PAC_POINT-type typedef struct { int x; int y; } PAC_POINT;
// direction-types typedef enum { PAC_DIRNONE = 0, PAC_DIRLEFT, PAC_DIRUP, PAC_DIRRIGHT, PAC_DIRDOWN } PAC_DIR; const PAC_POINT PAC_DIRS[5] = { { 0, 0 }, {-1, 0 }, { 0,-1 }, { 1, 0 }, { 0, 1 } };
// tool-tip missing *g* typedef bool (*PAC_ISFREEATPOINTXY)(int, int);
// PAC_BasicAI-Type typedef void* PAC_BasicAI;
#endif // PAC_TYPES |
Jeder Üersetzungsversuch wurde zwar von Delphi kompiliert, jedoch kommt beim Start eines Testprogramms die Fehlermeldung, dass die Anwendung nicht richtig initialisiert werden kann, was mir sagt, dass die Funktionen aus der DLL nicht mit den richtigen Parametern aufgerufen werden.
Wenn jemand mitmachen will, diesen code zu übersetzen, kann er das gerne machen und hier Lösungen posten!
mimi - Do 24.07.03 18:26
| Zitat: |
@mimi: Hat die Konstantendefinition denn jetzt geklappt?
|
ja schon, aber das was jetzt kurzer geschriebn hat ist unser neues problem :( :(
kennt wer lösungen
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!