AGB  ·  Datenschutz  ·  Impressum  







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

Delphi 2010 UND Delphi 7 verwenden?

Ein Thema von taaktaak · begonnen am 23. Nov 2009 · letzter Beitrag vom 24. Nov 2009
Antwort Antwort
Seite 1 von 2  1 2      
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#1

Delphi 2010 UND Delphi 7 verwenden?

  Alt 23. Nov 2009, 22:53
Moin, Moin.

So langsam muss ich ja mal "warm werden" mit dem "teuren D2010" - fällt mir sehr schwer.

So sollte zum Einstieg erst einmal ein altes Mini-Projekt nebenbei etwas modernisiert werden. Tja, und da haut's einem ja nur so die Fehlermeldungen um die Ohren: Chars und Strings sind so ganz anders geworden. OK, die Welt braucht das sicherlich ganz dringend! Ändern wir das eben ab! Aber halt, wie soll das denn funktionieren? Auch ein kleines, altes Programm nutzt natürlich Bibliotheks-Units - und auch dort passt natürlich vieles ebenso nicht mehr!

Tja und das ist wohl nun das Problem: Ändere ich auch in den Bibliotheken, kann Delphi 7 (mit dem andere Projekte fertig gestellt werden sollen) da nix mit anfangen und meckert. Überall Compiler-Schalter einbauen und alle betroffenen Funktionalitäten doppelt vorhalten???? Hmm, also das kann es doch wohl nicht sein. Da geht meine Produktivität ja gegen NULL - und die soll doch enorm gesteigert werden, durch den neumodischen Kram, oder?

Fragestellung:

Gibt es da irgendeinen Schalter in der Delphi 2010 IDE, dass auch der neue Compiler für eine Übergangszeit mit dem alten Source (ohne diesen zu verändern) klar kommt?

Gibt es da einen anderen Weg?

Oder ist der schrittweise Umstieg in die Moderne nicht praktikabel/möglich?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

Re: Delphi 2010 UND Delphi 7 verwenden?

  Alt 23. Nov 2009, 23:18
Abgesehn von Assemblerbefehlen würde sich theoretisch alles von D2007- nach D2009+ reibungslos portieren lassen, samt Umstellung auf Unicode.

Dafür hätte man aber früher eben alles "korrekt" geschrieben haben müssen.


> Da wo bytegenaue Daten nötig sind
> z.B. Datenübertragung und binäre Speicherung
= packed Records
= feste Typen (AnsiChar, AnsiString, WideString, LongInt und Co.)

> beim Rest
= die compiler-/systemabhängigen Typen (Char, String, Integer)

Und vorallem keine willden Vermischungen dieser Typen


also entweder deine Bibliotheks-Units nach obrigen Regeln umgestalten
und dann auch die Anwendungen

oder eben alles doppelt
Bibliotheks-Units auf neusten Stand bringen
und die alten Anwendungen mit 'ner alten Kopie dieser Units betreiben



CodeGear hatte ja netter Weise die Standardunits nur typenmäßig umgestellt
AnsiUpperCase ist in D2009/2010 Unicode, so daß man bei der Umstellung da nichts ändern muß.

Will man beim Neuschreiben von Anwendungen aber wirklich mal Ansi, dann muß man sich eine Andere Unit einbinden ... ebenso für eine mehr nach Unicode klingenden Funktionsnamen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#3

Re: Delphi 2010 UND Delphi 7 verwenden?

  Alt 23. Nov 2009, 23:30
Es sind keine komplizierte oder "wilden Sachen" enthalten. Aber eben 'ne ganze Menge dieser Char und String-Geschichten, wenn die Bibliotheken umgestaltet werden ohne zu Doppeln, sperre ich D7 aus.

Zitat:
oder eben alles doppelt
Bibliotheks-Units auf neusten Stand bringen
und die alten Anwendungen mit 'ner alten Kopie dieser Units betreiben
Tja, das ist so ziemlich das, was ich befürchtet habe..


Dann muss ich noch mal genau überlegen, wann ich den "Umstieg" machen...
Auch wenn ich hoffte etwas anderes zu hören,
vielen Dank für die Info!
Ralph
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Delphi 2010 UND Delphi 7 verwenden?

  Alt 23. Nov 2009, 23:41
Kannst du da nichtmal ein kleines Beispiel liefern, vielleicht können wir gemeinsam eine brauchbare Lösung erarbeiten. Vielelicht ist diese Lösung dann auch so grundlegend, dass sich deine weiteren Probleme ebenfalls so lösen lassen. Also nur Mut...
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#5

Re: Delphi 2010 UND Delphi 7 verwenden?

  Alt 24. Nov 2009, 00:47
Hallo omata!

Ja, gern...

Die Schleife durchläuft einen (alten) String zeichenweise ...

Delphi-Quellcode:
while (p<=length(MsgStr)) and
      (MsgStr[p] in ['0'..'9']) do begin
  ..
Das führt zu einer Warnung und einem Vorgehenshinweis ".... Verwendung (von) .. 'CharInSet' in Betracht ziehen", also ändere ich nach...

Delphi-Quellcode:
while (p<=length(MsgStr)) and
      CharInSet(MsgStr[p],['0'..'9']) do begin
  ..
Leider folgen viele weitere Warnungen/Fehler, so konnte ich noch nicht einmal prüfen, ob meine Änderung nun korrekt ist. Aber, und das ist für mich im Augenblick das unangenehmste: Nach dieser Änderung kann Delphi 7 den Source natürlich nicht mehr "verdauen".

Zweifelsohne kann der "alte" Source mit ein wenig Fleiß fit für Delphi 2010 gemacht werden. Aber, wie himitsu schon sagte: Source doppelt vorhalten?! Entweder innerhalb der Units oder gleich die kompletten Units doppelt. Tja, und das ist natürlich nicht so prickelnd.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Delphi 2010 UND Delphi 7 verwenden?

  Alt 24. Nov 2009, 01:05
Hallo taaktaak,

das Problem kenne ich auch(allerdings mit Delphi 2009). Leider ist es nicht nur auf unseren Code begrenzt, sondern betrifft auch Fremd-Komponenten. Es gibt auch keinen Compiler-Schalter der einem helfen würde die Umstellung nach und nach zu vollziehen, sondern es geht nur ganz oder gar nicht.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Delphi 2010 UND Delphi 7 verwenden?

  Alt 24. Nov 2009, 01:07
Kannst du das Problem nicht andersherum lösen?

Also in Delphi7 das nachbilden, was eben in Delphi2010 jetzt anders ist...

Delphi-Quellcode:
{$IfDef VER150}
function CharInSet(Text:Char; Menge:TMenge):boolean;
begin
  Result:=(Text in Menge);
end;
{$EndIf}

procedure TForm.ButtonClick(Sender: TObject);
var p:integer;
    MsgStr:string;
begin
  p:=0;
  while (p <= length(MsgStr))
        and CharInSet(MsgStr[p],['0'..'9']) do
  begin
    inc(p);
  end;
end;
Die Routinen, die Delphi7 erweitern würde ich dann in eine eigene Unit auslagern, so dass du das dann nur noch einbinden mußt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

Re: Delphi 2010 UND Delphi 7 verwenden?

  Alt 24. Nov 2009, 08:39
Da hier kein Unicode nötig ist, kannst du diese Warnung auch ignorieren und das alte IN auch erstmal belassen.

{$IfDef VER150} ist etwas blöde unglücklich
entweder eine Versions-Lib nutzen, wo es z.B. {$If Delphi2007down} gibt
oder {$If CompilerVersion <= 19.0}


denn man nehme z.B. ein {$IfDef VER210} für D2010 und bei Umstellung auf Delphi 2011 gibt es wieder Probleme ... so wie jetzt auch
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

Re: Delphi 2010 UND Delphi 7 verwenden?

  Alt 24. Nov 2009, 10:11
Ich arbeite "gleichzeitig" mit Delphi 7, 2007 und 2010 mit den gleichen Bibliotheks-Sourcen. Der meiste Aufwand war sicherlich das Portieren der eigenen und der nicht mehr unterstützten Fremd-Bibliotheken, aber das war auch nach zwei Tagen geschafft.

Eigentlich hätte ich auch die D7 und D2007 Versionen einfach einfrieren können, da damit lediglich alte Programme gewartet werden. Die Versionsverwaltung sorgt eh schon dafür, daß jede Programmversion mit der dazu passenden Bibliotheksversion verheiratet wird. Wie sollte man sonst auch sinnvoll Fehler in älteren Versionen aufspüren können.

Also, Koexistenz verschiedener Delphi-Versionen und Bibliotheken ist immer möglich, bedarf manchmal aber halt etwas Feintuning.
Uwe Raabe
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#10

Re: Delphi 2010 UND Delphi 7 verwenden?

  Alt 24. Nov 2009, 12:43
Moin, Moin,l
nun sehe ich doch etwas klarer und fasse mal zusammen:
  • Einen Schalter "arbeite so wie früher" gibt es in Delphi2010 nicht - da habe ich also nix übersehen.
  • Die Bibliotheken müssen an die neue Welt angepassst werden - diese Arbeit muss nun einmal sein.
  • Damit das alte Delphi mit den angepassten Bibliotheken etwas anfangen kann, wird in einer speziellen Unit das nachgebildet, was D7 nicht kennt. Diese Unit wird nur eingebunden, wenn mit D7 gearbeitet/compiliert wird.
Ja, damit ist das Vorgehen klar
- allen Ratgebern vielen Dank
Ralph
  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 17: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