Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Kleines Problem mit der OOP (https://www.delphipraxis.net/89793-kleines-problem-mit-der-oop.html)

Generaljim 5. Apr 2007 19:04


Kleines Problem mit der OOP
 
Hallo leute ich hab hier ein kleines Problem mit dem nutzen von Image Dateien aus einer selbst erstellten klasse heraus:Ich kann sie zwar
ganz normal aus der TForm klasse heraus aufrufen und ihre eigenschaften veränderen aber aus meiner klasse geht das nicht, obwohl beide in der selben unit stehen.Hab auch schon versucht allesmögliche davorzuschreiben hat aber nix funktioniert.Da sich einige aus dieser Fragestellung heraus sehr wahrscheinlich nicht viel vorstellen können hier mein Quellcode.
Delphi-Quellcode:
 
 TSupermari=class (TObject)
public
posx:integer;
posy:integer;
procedure bewegen(x,y:integer);
end;

var
  Form1: TForm1;
  Supermari:TSupermari;


implementation


{$R *.DFM}
procedure Tsupermari.bewegen(x,y:integer) ;
var i:integer;
begin

Form1.Image1.visible:=true;// Hier liegt das Problem er complimiert es zwar macht aber an dieser stelle nix mit dem Image
Form1.Image2.visible:=false;
for i:=1 to y do begin
Form1.Image1.top:=Form1.arsch.top-1 end;
for i:=1 to y do begin
Form1.Image1.top:=Form1.top-1 end;
end;
Ich bedanke mich schon im vorraus bei allen Antwortgebern herzlich!!

Gruß Generaljim

xaromz 5. Apr 2007 19:20

Re: Kleines Problem mit der OOP
 
Hallo und ehrzlich Willkommen!

Zu Deinem Quelltext gbt es einiges anzumerken. Erstens sehe ich nicht, wo Du eine Instanz von TSupermari erstellst. Du deklarierst zwar eine Variable, aber das war es dann auch schon.
Zweitens, Du verwendest in der Implementation Deiner Klasse eine globale Variable der TForm-Klasse. Sowas macht man nicht. Erstelle einen Konstruktor, dem Du das TImage als Argument übergibst, speichere dieses in einer privaten Variable der Klasse und benutze dann diese.
Drittens ist es oft übersichtlicher, eigene Klassen in einer separaten Unit zu deklarieren. Schließlich ist die Unit mit dem Form nur zur Darstellung des Programms gedacht. Die Logik sollte hiervon getrennt werden.

Gruß
xaromz

cruiser 5. Apr 2007 19:26

Re: Kleines Problem mit der OOP
 
Desweiteren kann ich nicht erkennen wozu die Schleifen gut sind. Die schleifenvariable wird nicht benutzt, statt dessen wird der Wert immer wieder gesetzt.

xaromz 5. Apr 2007 19:43

Re: Kleines Problem mit der OOP
 
Hallo,
Zitat:

Zitat von cruiser
Desweiteren kann ich nicht erkennen wozu die Schleifen gut sind. Die schleifenvariable wird nicht benutzt, statt dessen wird der Wert immer wieder gesetzt.

stimmt. Das wird nur der gleiche Wert immer wieder neu gesetzt.

Gruß
xaromz

Khabarakh 5. Apr 2007 20:01

Re: Kleines Problem mit der OOP
 
[OT]
:shock:
Manchmal sollte man seine Quelltexte auf Forentauglichkeit lieber noch einmal überprüfen :stupid: Zeile 25...
[/OT]

DP-Maintenance 6. Apr 2007 14:34

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Es geht um Delphi.


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