AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kein Zugriff auf Proceduren und Functionen

Ein Thema von wendelin · begonnen am 26. Mai 2015 · letzter Beitrag vom 27. Mai 2015
Antwort Antwort
Seite 1 von 2  1 2      
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#1

Kein Zugriff auf Proceduren und Functionen

  Alt 26. Mai 2015, 12:12
Hallo,

ich möchte einen PGN-Parser schreiben um mit seiner Hilfe das PGN-Format in das FEN-Format umzuwandeln.
(PGN) ist ein als Text lesbares Datenformat zur Speicherung von Schachpartien.
Die Forsyth-Edwards-Notation (FEN) ist eine Kurznotation,mit der jede beliebige Brettstellung
im Schach niedergeschrieben werden kann.
Mit Hilfe des FEN-Format's kann so leicht ein Viewer erstellt
werden, mit dem man vorwärts und rückwärts durch eine Schachpartie blättern kann (als 2D-Schachbrett).

Nun habe ich eine sichtbare Komponente 'ChessDiag2D' (mit Source) für Delphi2 gefunden,welche ich problemlos nach D7
kompilieren und einbinden konnte.(http://www.bauer-schweitzer.de/index...x_minimax.html).

Ich würde mir mit dieser Komp. viel Arbeit ersparen, da sie Funktionen und Proceduren besitzt,
welche das FEN - Format unterstützen.
Die Komp. beinhaltet vier Units von denen drei Proc's und Func's beinhalten.

Mein Problem ist nun (ich kenne mich mit Komponenten nicht gut aus !): Leider kann ich im Gegensatz zu den Proc's
aus den Units 'Diagram' und 'Diag2D' auf die Proc's. und Func's aus der Unit 'Position.pas' nicht zugreifen.

Meine Frage ist nun, WARUM? und wie kann ich dies ev. ändern.
Liegt es ev. an der Portierung nach D7 ?.

Wolfgang
Angehängte Dateien
Dateityp: zip chess2d.zip (29,7 KB, 9x aufgerufen)
Wolfgang
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Kein Zugriff auf Proceduren und Functionen

  Alt 26. Mai 2015, 12:20
Offensichtlich bindest du in deiner Position.pas nur die Unit DiagType.pas ein. Wenn du auf die anderen zugreifen willst, mußt du die selbstverständlich ebenfalls in deine USES-Klausel aufnehmen.
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Kein Zugriff auf Proceduren und Functionen

  Alt 26. Mai 2015, 19:09
Hallo Perlsau,
danke für Deine schnelle Antwort.

In meinem Prog(ChessBoard) sind selbstverständlich alle vier Units der Komponente (Diag2D,Diagram,position und DiagType) eingebunden.
Trotzdem funktioniert es nicht.
Wie ich jetzt noch festgestellt habe, lassen sich auch nicht alle Funkt. und Proceduren aus Diagram.pas aufrufen.

Wolfgang
Wolfgang
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: Kein Zugriff auf Proceduren und Functionen

  Alt 26. Mai 2015, 19:22
Jetzt mal langsam: Du hattest oben geschrieben, du könntest von der Unit position.pas nicht auf diese anderen Units zugreifen. In der Zip-Datei, die du zum Download bereitgestellt hast, steht:
Delphi-Quellcode:
unit Position;

interface

uses
  DiagType,dialogs,sysutils;
...
Da steht also nur die Unit DiagType, nicht wahr? Woher soll die Unit position.pas Units kennen, die nicht in ihrer Uses-Klausel stehen?

Das in der Zip-Datei war doch dein vollständiges Projekt, oder etwa nicht?
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#5

AW: Kein Zugriff auf Proceduren und Functionen

  Alt 26. Mai 2015, 19:29
Kannst du mal konkret machen, welche Funktionen du gern aufrufen würdest, und dies nicht funktioniert? Soweit ich das überblicke gibt's bis auf eine Ausnahme in den Units nur jeweils ein oder zwei Klassen. Die haben natürlich ihre Methoden, aber um die benutzen zu können, muss man schon eine Instanz der jeweiligen Klasse erzeugen, also ganz klassisch ein Objekt erzeugen:
Delphi-Quellcode:
var objekt: TKlasse;
begin
  objekt:= TKlasse.Create;
  try
    objekt.Methode1;
    objekt.Methode2(mit_parameter);
  finally
    objekt.Free;
  end;
end;
und so weiter.

Das in der Zip-Datei war doch dein vollständiges Projekt, oder etwa nicht?
Davon gehe ich nicht aus. Die Dateien sind von 1996/1997, was zwar nicht zwingend dagegenspricht, aber es findet sich ein Copyright von jemandem aus den USA am Anfang der Units.

MfG Dalai
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#6

AW: Kein Zugriff auf Proceduren und Functionen

  Alt 26. Mai 2015, 19:54
Das in der Zip-Datei war doch dein vollständiges Projekt, oder etwa nicht?
Davon gehe ich nicht aus. Die Dateien sind von 1996/1997, was zwar nicht zwingend dagegenspricht, aber es findet sich ein Copyright von jemandem aus den USA am Anfang der Units.
Stimmt, darauf habe ich gar nicht geachtet.

Wendelin schrieb aber doch, wie ich es verstand, er könne von der Unit position aus nicht auf die anderen Units zugreifen, und das kann erstmal auch nicht gehen, wenn er sie nicht in die USES-Klausel aufnimmt. Doch offensichtlich habe ich den Satz falsch interpretiert: er kann also nicht auf die Methoden in position.pas zugreifen. Da war meine Aufmerksamkeit wohl gerade im Keller Kohlen schaufeln

Die Lösung hast du ja bereits hingeschrieben. Ich mach's nochmal ein bißchen konkreter:

@Wendelin

In position.pas gibt es die Klasse TChessPosition.

type
TChessPosition = class

Nun erstellst du in der Unit, in der du diese Klasse verwenden willst, eine Variable vom Typ dieser Klasse, entweder in einer deiner eigenen Methoden oder global, wenn du diese Klasse öfters in deiner Unit oder deinem Mainform benötigst:
Delphi-Quellcode:
...
Implementation

Uses
  Position;

Var
  ChessPos : TChessPosition;

Procedure TFormMain.Create(Sender: TObject);
begin
  ChessPos := TChessPosition.Create;
end;

Procedure TFormMain.Destroy(Sender: TObject);
begin
  ChessPos.Free;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
 
Delphi 12 Athens
 
#7

AW: Kein Zugriff auf Proceduren und Functionen

  Alt 26. Mai 2015, 19:55
Laut Beschreibung ist es fast ein vollständiges Projekt mit Demokomponente.
Nur die Projektdatei (Package) muß man selber erstellen, oder man nimmt die Units in ein anderes bestehendes Designtime-Package auf. So, wie es praktisch in der Beschreibung erwähnt wurde.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Kein Zugriff auf Proceduren und Functionen

  Alt 26. Mai 2015, 22:56
Hallo Perlsau,

wahrscheinlich habe ich mich falsch ausgedrückt.
In der Zip-Datei waren ausschließlich die Pas.-Sourcen & Resourcen-Dateien der "ChessDiagram2D"-Komponente welche ein Schachbrett mit
Figuren in der Ausgangsstellung zeigt.
Mit Hilfe dieser Komp. und den in ihren Units vorhandenen Funkt.& Proc.
möchte ich mein Programm "PGN-Filter" (in Delphi-Praxis veröffentlicht) erweitern und dann wieder in "Delphi-Praxis" veröffentlichen.
Diesmal OHNE jede Beschränkung.

Wolfgang
Wolfgang
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#9

AW: Kein Zugriff auf Proceduren und Functionen

  Alt 26. Mai 2015, 23:01
Nein, du hast dich nicht falsch ausgedrückt, höchstens ein bißchen kompliziert, so daß ich nicht gleich kapiert habe, was du eigentlich meinst.
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Kein Zugriff auf Proceduren und Functionen

  Alt 26. Mai 2015, 23:13
Hallo Perlsau,Hallo Dalei
Eure Antwort :
Delphi-Quellcode:
Implementation

Uses
  Position;

Var
  ChessPos : TChessPosition;

Procedure TFormMain.Create(Sender: TObject);
begin
  ChessPos := TChessPosition.Create;
end;

Procedure TFormMain.Destroy(Sender: TObject);
begin
  ChessPos.Free;
end;
ist wahrscheinlich genau das, was ich gesucht habe, ich werde es sofort ausprobieren.
nochmals Danke

Wolfgang
Wolfgang
  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 19:24 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