AGB  ·  Datenschutz  ·  Impressum  







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

Properties haben nach Zuweisung falsche Werte

Ein Thema von BlueStarHH · begonnen am 29. Okt 2014 · letzter Beitrag vom 31. Okt 2014
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hannover-Hainholz
801 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 14:18
Delphi-Quellcode:
function TForm1.GetDebitorName: string;
begin
  Result := GetReAdr.Vorname + ' ' + GetReAdr.Name;
end;
Durch den zweimaligen Aufruf von GetReAdr wird der Code innerhalb von GetReAdr auch zweimal ausgeführt. Ist das so beabsichtigt?
Das stört nicht. Siehe Post #6. Dort ist ein Abfrage, verhindert das Zeitaufwändiger Code bei jedem Aufruf ausgeführt wird.
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hannover-Hainholz
801 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 14:19
Hallo,

vielleicht liefert ja dein
Query.HoleAufwändigDatenAb;

was falsches ab?

Breakpoint + Watchpoint drauf.

du kannst auch eine Set-Methode für VorName schreiben
und dort einen bedingten Breakpoint setzen, wenn 'b' übergeben wird.

Ausserdem auch hier einen Breakpoint setzen
procedure TAdresse.Assign(Source: TPersistent);

Vielleicht überschreibst du auch irgendwo Speicher -> FastMM4 benutzen.


Heiko
Das ist alles OK. Alles mit Breakpoint & co geprüft. Exakt das kleine Beispiel aus Post 1 funktioniert nicht. Kannst Du Dir in ein Form kopieren und nachvollziehen. Also liegt es nicht am SQL.
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hannover-Hainholz
801 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 14:21
Es ist nie eine gute Idee in Methoden auf globale Variablen zuzugreifen.

Delphi-Quellcode:
function TForm1.GetReAdr: TAdresse;
begin
  Result.Vorname := 'a';
  Result.Name := 'b';
end;
Sein Code war schon fast richtig, denn er "wollte" die Instanz zurückgeben, welche er in TForm1 deklatiert/erstellt hat.
Aber er hat nicht auf seinen Compiler gehört, welcher ihm bestimmt was vonwegen "Result ist nicht initialisiert" um die Ohren wirft!


[edit] War das Result := Adresse; vorhin auch schon in Post #1 ?
Nja, dein Code war zumindestens falsch, denn Result wurde nicht initialisiert.

Delphi-Quellcode:
function TForm1.GetReAdr: TAdresse;
begin
  Result := Adresse;
  Result.Vorname := 'a';
  Result.Name := 'b';
end;

// oder

function TForm1.GetReAdr: TAdresse;
begin
  Adresse.Vorname := 'a';
  Adresse.Name := 'b';
  Result := Adresse;
end;
Result := Adresse; war schon immer in Post #1. Dein Lösungsvorschlag 2 steht genau so im Post #1.
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hannover-Hainholz
801 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 14:24
Nja, dein Code war zumindestens falsch, denn Result wurde nicht initialisiert.
Was genau meinst Du damit? Mit Result := Adresse; wird es initialisiert/zugewiesen. Oder sehe ich das falsch?
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hannover-Hainholz
801 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 14:30

Delphi-Quellcode:
function TForm1.GetReAdr: TAdresse;
begin
  Result := Adresse;
  Result.Vorname := 'a';
  Result.Name := 'b';
end;
Hab das mal eben ausprobiert: Als Vorname und Name wird dann auch 'b b' zurückgegeben. Klappt also auch nicht. Sehr merkwürdig.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 14:33
Nja, dein Code war zumindestens falsch, denn Result wurde nicht initialisiert.
Was genau meinst Du damit? Mit Result := Adresse; wird es initialisiert/zugewiesen. Oder sehe ich das falsch?
Nicht bei Markus in Post #2
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.007 Beiträge
 
Delphi 12 Athens
 
#17

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 14:39
Ich kann das hier (XE7) reproduzieren. Es handelt sich offenbar um einen Compiler-Fehler.

Delphi-Quellcode:
var
  sn: string;
  sv: string;
begin
  sv := GetReAdr.Vorname;
  sn := GetReAdr.Name;
  result := sv + ' ' + sn;
  Result := GetReAdr.Vorname + ' ' + GetReAdr.Name;
end;
Das erste result bringt noch das richtige Ergebnis, aber beim zweiten klappts nicht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#18

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 14:41
Ich kann es mit D6 auch bestätigen.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#19

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 14:52
Ist .Name vllt. ein reserviertes Wort in dem Zusammenhang? Zumindest wird es ja hier im Codeformatierer der DP fett blau gezeigt?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 15:02
Es funktioniert auch, wenn man die Adresse in einer lokalen Variablen zwischenspeichert.
Delphi-Quellcode:
function TForm1.GetDebitorName: string;
var
  a: TAdresse;
begin
  a := GetReAdr;
  Result := a.Vorname + ' ' + a.Name;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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