![]() |
Überkreuzender Bezug 2er Units :(
Hi,
Wollte meinen Quelltext ein bisschen ordnen und hab dann für meine Klasse TMyMario, eine neue Unit angefangen. In Meiner Main Unit hab ich die dann auch eingebunden, und alles hat wieder wunderbar funktioniert. ABER, ich kann nur von meiner Main Unit auf meinen Mario zugreifen(Wenn ich einen Punkt mache erscheint dieses Menü) und wenn ich In Meiner TMyMario Unit "MyMario.*Punkt*" eingebe, kommt Fehler in Quelltext. Also dachte ich einfach, Mal in der TMyMario Unit die Unit Main einbinden, aber dann kommt Überkreuzender Bezug 2er Units :( Mach ich was falsch oder ist das normal? MfG Spiderpig |
Re: Überkreuzender Bezug 2er Units :(
Das ist normal. Delphi kann keine Zyklen in den Uses-Anweisungen der Interfaces. Warum musst du von der TMyMario auf die Main-Unit zugreifen?
|
Re: Überkreuzender Bezug 2er Units :(
Lagere Gemeinsames in eine Unit aus, welche du von beiden Units dann referenzierst oder binde einmal im Interface und einmal im Implementierungsteil ein
|
Re: Überkreuzender Bezug 2er Units :(
duhast bestimmt beide Units jeweils im Interface-Abschnitt eingebunden?
Binde doch die eine Unit (idealer Weise die Main) im Implementation-Abschnitt ein. Delphi bindet die uinits in der Reinfolge in die EXE ein, in welcher sie im QuellCode eingebunden wrden, und zwar fängt Delphi mit der Abhänigen Unit an ... wenn du nun beide per ![]()
Delphi-Quellcode:
Unit Main;
Interface Uses MyMario; Implementation End.
Delphi-Quellcode:
Unit MyMario;
Interface Implementation Uses Main; End. |
Re: Überkreuzender Bezug 2er Units :(
wie binde ich denn eine unit im Implementations Teil ein?
|
Re: Überkreuzender Bezug 2er Units :(
mercì,
eine sekunde später kam's schon :stupid: Ich versuchs dann mal, wenn nciht meld ich mich nochmal :mrgreen: THX :cat: |
Re: Überkreuzender Bezug 2er Units :(
Zitat:
|
Re: Überkreuzender Bezug 2er Units :(
JUHUUUU es klappt auch noch :!: :!: :!:
:dp: :dp: :dp: |
Re: Überkreuzender Bezug 2er Units :(
Also solle er einen Kreuzbezug der Auslagerung vorziehen?
|
Re: Überkreuzender Bezug 2er Units :(
Zitat:
...:cat:... |
Re: Überkreuzender Bezug 2er Units :(
Hi, ich glaube du machst einen elementaren Fehler mit Objekten, auch wenn dein akutes Problem jetzt gelöst scheint.
Zitat:
Du solltest doch alles was du mit der Klasse machen willst innerhalb der Klasse zur Verfügung haben/durch Funktionen an die Klasse übergeben. um mkinzler zu zitieren Zitat:
[edit]fehlerteufel[/edit] |
Re: Überkreuzender Bezug 2er Units :(
also das ist soweit correct interpretiert, aber ich bin mir keiner Schuld bewusst,
denn ich habe meine Methoden(MyMario.GoRight) von MyMario in der Unit TMyMario. Und dafür muss ich wohl oder übel folgendes eingeben:
Delphi-Quellcode:
und so wie es im Moment ist funktioniert es!//In der Unit TMyMario procedure TMario.GoRight; begin MyMario.X:=MyMario.X+5; end; und was soll denn da falsch sein? MfG Spiderpig |
Re: Überkreuzender Bezug 2er Units :(
Zitat:
Da gehört folgendes hin:
Delphi-Quellcode:
Gruß Assertor
//In der Unit TMyMario
procedure TMario.GoRight; begin X := X + 5; // hier ist was richtig! end; Edit: Und überleg mal genau, warum. Was ist eine Klasse? |
Re: Überkreuzender Bezug 2er Units :(
Zitat:
MFG Spiderpig Habe das jetzt geändert, und die Unit Main aus Unit TMyMario wieder ausgebunden(Das sollte ich ja tun?!), die Stelle mit dem X funktioniert, jetzt kann ich aber nicht mehr auf MyImageList zugreifen, und das geht nur dann wieder, wenn ich die Unit wieder einbinde Also muss ich die Unit Main doch drinnen lassen?! |
Re: Überkreuzender Bezug 2er Units :(
Zitat:
Kurze Analogie: - Klasse: Grüne Autos - Klasseninstanz: Ein (bestimmtes) grünes Auto Zitat:
![]() Zitat:
Ansonsten mal grob die Empfehlung für ein günstiges Anfängerbuch: ![]() Gruß Assertor |
Re: Überkreuzender Bezug 2er Units :(
Zitat:
Befasse dich nochmal mit den Grundlagen der objektorientierten Programmierung. Dann wird dir einiges klarer sein. Zitat:
Grobes BeispieL:
Delphi-Quellcode:
TMyMario = class(TObject);
private FMyImgList: TImageList; public property MyImgList: TImageList read FMyImgList write FMyImgList; [...] end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz