AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit msvcrt.dll

Ein Thema von Mokus · begonnen am 2. Jul 2014 · letzter Beitrag vom 3. Jul 2014
Antwort Antwort
Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Problem mit msvcrt.dll

  Alt 2. Jul 2014, 12:46
Delphi-Version: XE2
Tach zusammen,

habe ein recht komisches Problem mit meinen Delphi, es tretten Sachen auf, die ich mir nicht erklären kann.
Bild 001 ist eine Ausgabe, wie angeblich ein String aussehen soll, den ich von hand eingegeben habe.
Im bild 001_debug kann aber man gut sehen, dass der Parameter eigentlich auf "test" steht ...

Delphi-Quellcode:
procedure TErrechne.AddStadt(AlleNachbarn: allNachbarn; Name: string);
var
  temp: TStadt;
begin
  temp := TStadt.create(Name, AlleNachbarn);
  self.AllStadte.Add(temp);
  showmessage(self.AllStadte[AllStadte.Count - 1].getName);
end;
hier ist die Methode wo der Fehler auftritt.

Möchte ich nun in verschiedenen Teilen des Programmes getname aufrufen, kommt ein komischer Fehler.
Daraufhin habe ich das showmessage und auch hier kommt der Fehler,
Das hindert ein nun am programmieren, da einfach sachen wie ein .add oder ein Object.getname zu komischen fehler führt, hat wer irgendwie eine Idee...?
Angehängte Grafiken
Dateityp: jpg 001_debug.jpg (27,1 KB, 22x aufgerufen)
Dateityp: jpg 002_fehler.jpg (53,8 KB, 26x aufgerufen)
Dateityp: jpg 001.jpg (7,7 KB, 8x aufgerufen)
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Problem mit msvcrt.dll

  Alt 2. Jul 2014, 13:01
Sicherlich magst du uns noch paar Inputs geben, wie z.B.:
1. Wird ein Create von AllStadte aufgerufen, wenn ja wo und was passiert da
2. Ist AllStadte zu diesem Zeitpunt assigned
3. was macht das Add von AllStadte
4. was macht das GetName von AllStadte
5. was zeigt AllStadte.Count an
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Problem mit msvcrt.dll

  Alt 2. Jul 2014, 13:14
Gerne gib ich weiter Informationen raus,
wusste nur nicht was ihr genau wissen müsst:

1. Wird ein Create von AllStadte aufgerufen, wenn ja wo und was passiert da

Ja wird es, im Form create wird die klasse TErrechne erstellt. ,
Delphi-Quellcode:
procedure TForm6.FormCreate(Sender: TObject);
begin
  if not Assigned(self.Berechnung) then
  begin
    self.Berechnung := TErrechne.create;
  end;
end;
und im Constructor von TErrechne wird AllStadte erstellt.

constructor TErrechne.create;
begin
self.AllStadte := TObjectList<TStadt>.create;
end;


2. Ist AllStadte zu diesem Zeitpunt assigned

ja, da es ganz zum anfang erstellt wird.


3. was macht das Add von AllStadte
AllStadte ist eine normale GenericsObjectlist von typ TStadt, am add selbst habe ich nichts geändert.


4. was macht das GetName von AllStadte

Da allStadte eine Objectliste ist, greif ich auf das Object zu. Das ist eine Instance von TStadt.
das getname von TStadt gibt nur eine private Variable zurück.

Delphi-Quellcode:
function TStadt.getName: string;
begin
  result := name;
end;
5. was zeigt AllStadte.Count an
Zeig nach dem add´n 1 an.


Wer noch mehr infos braucht, einfach fragen.
Ich versuch alle nötigen Informationen zu liefern.
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Problem mit msvcrt.dll

  Alt 2. Jul 2014, 13:37
OK, fehlt noch :
6. Ist AllStadte[0] zu diesem Zeitpunkt auch assigned
7. Kommt er in die Routine TStadt.GetName (Haltepunkt setzen)
8. Wie sieht TStadt aus
9. Was macht TStadt.Create
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Problem mit msvcrt.dll

  Alt 2. Jul 2014, 14:56
Zum Ersten Bild, wo war da eigentlich grade die Codeausführung?

Wenn TStadt.Create, bzw. eigentlich die Zuweisung an die Variable "Temp" noch nicht ausgeführt war, dann steht in dieser Variable nunmal ein Zufallswert und demnach wäre es dort vollkommen Normal, daß da "Mist" angezeigt werden würde.

Zitat:
Delphi-Quellcode:
procedure TForm6.FormCreate(Sender: TObject);
begin
  if not Assigned(self.Berechnung) then
  begin
    self.Berechnung := TErrechne.create;
  end;
end;
Wozu das Assigned?
Gibt es denn noch eine andere Stelle wo das Ding initialisiert wird?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Mokus
Mokus

Registriert seit: 24. Sep 2013
165 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Problem mit msvcrt.dll

  Alt 2. Jul 2014, 15:54
Hey,
Bin gerade im Zug und nur mit Handy im Netz
Deswegen kann ich keine sourcen zeigen.
@himitsu
Ja temp wurde vorher erstellt, und der Parameter heißt auch Test.
Wegen aasigned war nur wegen der Sauberkeit.
Das wird nirgendswo anders erstellt.
@baumina
6) ja es ist auch zu diesen zeit Punkt assigned
7) ja kommt er rein. Dann steht im debugger bei Self auch solch ein komische. Wert.

8/9 kann ich dir erst heut Abend zeigen, da ich nur im Zug on bin.

Ist aber eigentlich nichts spektakuläres.
Klasse an sich paar Funktion und paar Variablen im private Bereich.
Der constructor weiß auch nur werte den private Variablen zu.
Genaueres zeige ich dir heut Abend.
Markus
es gibt nur 10 arten von menschen !
die die binär verstehen und die die nicht. !
  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 06:49 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 by Thomas Breitkreuz