AGB  ·  Datenschutz  ·  Impressum  







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

simple zuweisung funktioniert nicht

Ein Thema von Haegar · begonnen am 23. Feb 2003 · letzter Beitrag vom 23. Feb 2003
Antwort Antwort
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#1

simple zuweisung funktioniert nicht

  Alt 23. Feb 2003, 22:01
hallöle, ich bins wieder, ich hab mal wieder was einfaches schreiben wollen, hier der ausschnitt der nicht funktioniert:
Delphi-Quellcode:
unit auto;

interface
uses Graphics;
 type TAuto=class(TObject)
  private
  public
   v:Single; //Geschwindigkeit
   x, y:integer; //Position
   farbe:longint; //Lackierung
   constructor erzeugen(xpos,ypos:integer; color:longint);
   procedure schneller(dv:real);
   procedure bremsen (dv:real);
   procedure zeichnen(canvas:TCanvas);
 end;
implementation

constructor TAuto.erzeugen(xpos,ypos:integer; color:longint);
begin
 x:=xpos; //
 y:=ypos; // falsche werte (aber xpos,ypos,color richtig!!
 farbe:=color; //
end;
das is der teil in der Auto-unit......
in unit1 steht folgendes:

Delphi-Quellcode:
procedure TForm1.btn_autoClick(Sender: TObject);
begin
 auto1.erzeugen(5,55,clNavy);
end;
nun die frage! beim debugging mit F7 komm ich bis zu Zeile x:=xpos; (in unit Auto) wenn ich mir dann den wert für x anschaue liegt der exakt bei 167772182, y hat dann auch sonen utopischen wert, und farbe entspricht nicht dem wert von color!

Woran kann das denn liegen, das is doch das simpelste was es gibt, und meiner meinung nach kein fehler drin.
ich hab ein Image mit Align=alClient auf der Form liegen, aber die das kann doch nicht der Grund sein oder? ich meine das er vielleicht mit der Position auf der Form, bzw. dem Image ducheinander kommt.

was sagt ihr dazu?

gruß haegar
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 23. Feb 2003, 22:07
Und wenn du einen Schritt weitergehst. Was steht dann in x?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#3
  Alt 23. Feb 2003, 22:09
naja macht er ja dann nicht, kommt ja gleich programm absturz (bzw. felhermeldung von wegen "acess violation und so weiter") und dann kan ich nicht weitermachen
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#4
  Alt 23. Feb 2003, 22:15
Du kannst den Constructor nicht wie eine normale Procedure verwenden. Er kann verwendet werden zum über diesen Constructor eine Instanz dieser Klasse zu erzeugen.

Delphi-Quellcode:
var
  Pointer : TAuto;
begin
  Pointer := TAuto.erzeuge( x, y, a);
end;
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5
  Alt 23. Feb 2003, 22:15
Das kann ja gar nicht funktionieren. Dein Konstruktur ist schon soweit korrekt, nur rufst du ihn falsch auf:

auto1.erzeugen(5,55,clNavy); Du rufst hier eine Methode eines Objektes auf, das noch gar nicht existiert. So muss es richtig lauten:

auto1 := TAuto.erzeugen(5,55,clNavy); Und der utopische Wert in der Variablen kommt daher, dass der Speicherbereich, in dem die Variable liegt, vorher nicht leer war. Das ist aber kein Problem, obiges verursacht den Fehler.

Edit: Mist, zu spät
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#6
  Alt 23. Feb 2003, 22:18
wie peinlich, naja kann jedem mal passieren, häät nur intensiver in mein büchlein schauen müssen, da steht das ja auch an einem beispiel erklärt

danke
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:19 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