AGB  ·  Datenschutz  ·  Impressum  







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

Umstellung von Delphi 7 auf 2010

Offene Frage von "DeddyH"
Ein Thema von menten · begonnen am 30. Okt 2010 · letzter Beitrag vom 1. Nov 2010
Antwort Antwort
Seite 1 von 2  1 2      
menten

Registriert seit: 3. Apr 2009
41 Beiträge
 
Delphi 10.3 Rio
 
#1

Umstellung von Delphi 7 auf 2010

  Alt 30. Okt 2010, 23:06
Delphi-Version: 2010
Hallo zusammen,

ich bin gerade dabei, eine mit Delphi 7 entwickelte Anwendung auf Delphi 2010 umzustellen. Das hat auch soweit funktioniert, nur bekomme ich beim Beenden der Anwendung Zugriffsverletzungen an verschiedenen Stellen. Mir kommt es so vor, als wäre die Reihenfolge, in der die Objekte zerstört werden, durcheinander gekommen. Der gleiche Quellcode funktioniert unter Delphi 7 reibungslos.

Hat jemand eine Idee, was das sein könnte?


Danke für jede Hilfe.
Stefan Menten
Stefan
  Mit Zitat antworten Zitat
zeras
Online

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#2

AW: Umstellung von Delphi 7 auf 2010

  Alt 31. Okt 2010, 14:52
Ich hatte einmal Probleme bei Umstellung von D6 auf D2006. Dort fehlte im Projektfile irgendetwas. Aber genau weiß ich das nicht mehr. Kannst ja mal im Projektfile nachschauen, ob es so aussieht:

Delphi-Quellcode:
  Application.Initialize;

  .................
  Application.Run;
Meines Wissens fehlte da irgwendwie der Initialize Zweig. Vielleicht hilft das.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von MuTzE.Y85
MuTzE.Y85

Registriert seit: 11. Apr 2006
152 Beiträge
 
#3

AW: Umstellung von Delphi 7 auf 2010

  Alt 31. Okt 2010, 15:06
Wäre sehr hilfreich, wenn du die Stellen mal posten würdest. Oder zumindest ein paar.
LAN-PC: C2Q Q9550 @ 4004 MHz @ 1.232 V @ Mugen 2 | DFI LANParty JR P45-T2RS | G.Skill 4GB DDR2-1000 CL5 | ZOTAC GTX 280 @ GTX 285 @ 1.06 V | WD Caviar Blue 320GB / WD Caviar Black 640GB | BeQuiet DPP P7 450W | Antec Mini P180
  Mit Zitat antworten Zitat
ak-ac

Registriert seit: 10. Apr 2009
26 Beiträge
 
#4

AW: Umstellung von Delphi 7 auf 2010

  Alt 31. Okt 2010, 15:55
Bei D2009 kamen einige Unicode-Besonderheiten dazu und Records haben sich in der Größe geändert. Hast du mal in der Hilfe die Hinweise zur Umstellung angeschaut? Das würde erklären, warums im Speicher nicht so rund läuft...
  Mit Zitat antworten Zitat
menten

Registriert seit: 3. Apr 2009
41 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Umstellung von Delphi 7 auf 2010

  Alt 31. Okt 2010, 18:34
Hallo zusammen,

danke für die Antworten. Hier erst mal der Quelltext des Projektes:

<--
Delphi-Quellcode:
begin
  Application.Initialize;
  Application.CreateForm(TDM_AM, DM_AM);
  Application.CreateForm(TfrmMain, frmMain);
  Application.Run;
end.
-->

Die erste Form ist ein Datenmodul, die zweite das Hauptfenster.

Unter Delphi 2010 ist es nun so, das die beiden Formen nicht in der umgekehrten Reihenfolge zerstört werden, also zuerst frmMain, dann das Datenmodul, sondern zuerst das Datenmodul (oder auch parallel). Wenn ich dann in der Hauptform z.B. auf eine ADO-Verbindung auf dem Datenmodul zugreifen will, existiert das Objekt nicht mehr. Es ist aber auch nicht nil.

<--
Delphi-Quellcode:
  qyLogged := TADOQuery.Create(nil);

  qyLogged.Connection := DM_AM.ADOConnection;

  qyLogged.SQL.Text := 'Select * from xyz'  // peng
-->

Das führt dann zu den Fehlern.


Gruß
Stefan
Stefan

Geändert von mkinzler (31. Okt 2010 um 19:55 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Umstellung von Delphi 7 auf 2010

  Alt 1. Nov 2010, 08:46
Ich habe bei der Umstellung auch öfter mal Späne gehabt. Um die nicht sehr übersichtliche Unicode-Implementation auszuschließen, könnte ein cast in einen AnsiString als Prüfung dienen:
Zitat:
AnsiString('Select * from xyz')
Wenn das funktioniert, liegt es am Unicode.

Grüße, Messie
  Mit Zitat antworten Zitat
menten

Registriert seit: 3. Apr 2009
41 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Umstellung von Delphi 7 auf 2010

  Alt 1. Nov 2010, 10:23
Hallo zusammen,

ich bin einen Schritt weiter.

<--
Delphi-Quellcode:
function SMMessageDlg(const sText, cText: AnsiString; aType: Cardinal): Word;
var
   pText, pCaption: PWideChar;
begin

  try
    GetMem(pText, Length(sText)+1);
    GetMem(pCaption, Length(cText)+1);
    StrPCopy(pText, sText);
    StrPCopy(pCaption, cText);

    result := MessageBox(0, pText, pCaption, aType);

  finally
    FreeMem(pText, Length(sText)+1);
    FreeMem(pCaption, Length(cText)+1);
  end;
end;
-->

Diese Funktion habe ich mir vor Jahren mal geschrieben um das Problem zu umgehen, dass die Standard-Dialoge von Delphi die Benutzeroberfläche von XP und Nachfolgern nicht unterstützte und die Buttons dann aussahen wie unter W9x.

Ich habe die Funktion zwar angepasst (PWideChar und AnsiString), aber offensichtlich kommt der Fehler immer noch dadurch zustande. Kurrioserweise funktioniert die Funktion, die Fehler kommen erst hinterher.

Any Idea?

Gruß
Stefan
Stefan

Geändert von mkinzler ( 1. Nov 2010 um 10:51 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

AW: Umstellung von Delphi 7 auf 2010

  Alt 1. Nov 2010, 10:28
Ginge das nicht auch kurz und bündig?
Delphi-Quellcode:
function SMMessageDlg(const sText, cText: AnsiString; aType: Cardinal): Word;
begin
  Result := MessageBoxA(0, PAnsiChar(pText), PAnsiChar(pCaption), aType);
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
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Umstellung von Delphi 7 auf 2010

  Alt 1. Nov 2010, 10:29
Delphi-Quellcode:
GetMem(pText, Length(sText)+1);
GetMem(pCaption, Length(cText)+
Du holst Dir da Speicher für PWideChar von einem AnsiString. Du brauchst aber 2 Byte pro Zeichen.

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: Umstellung von Delphi 7 auf 2010

  Alt 1. Nov 2010, 10:31
@menten
PWideChar passt aber nicht zu AnsiString.....
ansonsten schliesse ich mich DeddyH an.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:20 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