![]() |
Delphi 2006 .net
Hallo,
ich habe gerade angefangen mich in Delphi anzu arbeiten. Mein Problem liegt derzeit darin, das ich ein bestehendes Projekt von delphi7 nach Delphi 2006 (net) bringen muss. Meine Frage: Wie gehe ich mit Pointer um, gibt es eine einfache Möglichkeit diese irgendwie um zuwandeln? Für eine schnelle Hilfe wäre ich sehr dankbar. Gruß Fordka |
Re: Delphi 2006 .net
Bevor du dich jetzt ins Unglück stürzt: Wieso soll ein bestehendes Projekt nach .NET gewandelt werden und mit VCL.NET weiterentwickelt werden. Steckt da mehr dahinter als das man nun .NET machen will? Ist dann überhaupt der VCL.NET-Ansatz der richtige weg.
Zitat:
|
Re: Delphi 2006 .net
Hallo,
Das bestehende Projekt soll in .Net weiter entwickelt werden. (Vorgabe vom Kunden). In dem Projekt sind Pointer und die mag Delphi ja nun nicht mehr. Ich soll einfach versuchen alle Fehler zu beheben die auftretten wenn das programm in Delphi 2006 gestartet wird. Ich habe leider keine Ahnung was ich mit den Pointern machen soll. Gruß Fordka P.S. Ich bekomme folgende Fehlermeldung: [Pascal Fehler] uKonfiguration.pas(277): E2410 Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig |
Re: Delphi 2006 .net
Zitat:
Zitat:
Falls Du 3th-Party-Komponenten hast: Gibt es davon eine VCL.NET-Version. |
Re: Delphi 2006 .net
Ein Pointer ist ja ein Zeiger auf irgendeine Struktur (Record, Objekt, Funktion etc.).
Du ersetzt einfach jeden verwendeten Pointer durch eine Referenz auf die jeweilige Struktur und that's it. |
Re: Delphi 2006 .net
Hallo,
Es wohl so das über diesen weg eine Plattformunabhängigkeit erreicht werden soll. Ich bin auch nur Angestellt und mach was mir gesagt wird. Ja wie gesagt ich bekomme eine Fehlermeldung: [Pascal Fehler] uKonfiguration.pas(277): E2410 Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig und mit dieser kann ich nicht viel Anfangen. Mir geht es darum welche Alternative habe ich wenn ich keine Pointer mehr verwenden kann? Sorry, habe leider wenig Ahnung vom Projekt ( habe gerade erst angefangen) und noch weniger von Delphi |
Re: Delphi 2006 .net
Zitat:
Kannst Du mir das ein wenig genauer erklären? |
Re: Delphi 2006 .net
Zitat:
Zitat:
Du musst herausfinden, auf was für ein Objekt dieser Pointer zeigt und musst ihn dann in eine Refenz auf eben dieses Objekt umwandeln. Beispiel:
Delphi-Quellcode:
Wird zu:
var
X, Y: Integer;// X und Y sind Integer-Variablen P: ^Integer; // P zeigt auf einen Integer begin X := 17; // Einen Wert an X zuweisen P := @X; // Adresse von X an P zuweisen Y := P^; // P dereferenzieren; Ergebnis an Y zuweisen end;
Delphi-Quellcode:
var
X, Y: Integer;// X und Y sind Integer-Variablen P: Integer; // P nun selber als Integer deklarieren begin X := 17; // Einen Wert an X zuweisen P := X; // wert kopieren Y := P; // wieder kopieren end; |
Re: Delphi 2006 .net
Hallo,
Zitat:
Gruß xaromz |
Re: Delphi 2006 .net
Zitat:
Die VCL.NET basiert immer noch auf der Win32-API. Es soll zwar irgendwann mal eine VCL für Avalon und für das Compact Framework geben. Aber wollt ihr euch auf sowas verlassen? Wenn ihr Plattformunabhängigkeit jetzt haben wollt heißt es alles neu zu implementierung und zwar entweder: - Unter Java - Unter .NET und gegen das Mono-Framework testen - Verwendung von C++ und QT Zitat:
Zitat:
Von Delphi solltest Du schon für eine Portierung Ahnung haben. Alles neu lernen (Delphi, .NET und Fachwissen) kann eigentlich nur scheidern da du vermutlich in allen Fällen fehler machen wirst. Gibts keine anderen Projektmitglieder die du fragen kannst? |
Re: Delphi 2006 .net
Markiere deine Methoden als unsafe, zumindest die, die Pointer nutzen oder die, die Methoden benutzen, die Pointer benutzen, oder die, die Methoden benutzen, die Methoden benutzen, die Pointer benutzen, oder... :mrgreen:
Kurz gesagt alles was irgendwie von unsafe Code abhängig ist muss dummerweise selbst als unsafe markiert werden. Sehr bescheuert, IMHO. Aber so ist das nun mal bei allen mir bekannten .Net-Sprachen. :wall: Pointer funktionieren eigentlich sehr gut in .Net. Man muss nur verflucht gut aufpassen, dass man auch ja schön seine Strukturen "pinned", d.h. der GC sagen, dass sie sie auf keinen Fall verschieben oder vernichten darf. Ansonsten zeigt dein @Preiselbeersauce nach einer Relokalisation auf eine Erdbeertorte und dein Hirschbraten schmeckt komisch... |
Re: Delphi 2006 .net
Zitat:
VCL.Net und Mono tuns nicht richtig. VCL.Net ist auf Stand Net1.1 und nicht wirklich Net. Es wird die Win32 API in Net gekapselt. Es muß wohl immer eine Borland.dll mitgegeben werden. Und versionsabhängig ist das dann auch noch. Es gibt meines Erachtens von Delphi nach Net zur Zeit nur zwei vernünftige Wege. 1. Oberfläche neu in Net, Geschäftslogik in Chrome. (Ein Pascalcode Plugin für VS) Chrome wird auch gegen Mono verifiziert. 2. Hydra von Remobjects. Ein Pluginsystem, welches Net Module in Win32 einbinden läßt und umgekehrt. Hier ist eine sanftere Migration möglich. Ob es einen vernünftigen Weg mit Delphi/VCL geben wird, das werden wir wohl erst nächstes Jahr um diese Zeit wissen, wenn Delphi irgendwann mit Net2.0 umgehen kann. Inzwischen ist aber bereits Net3.0 erschienen, Gruß Peter |
Re: Delphi 2006 .net
Wenn ihr Plattformunabhängigkeit jetzt haben wollt heißt es alles neu zu implementierung und zwar entweder:
- Unter Java - Unter .NET und gegen das Mono-Framework testen - Verwendung von C++ und QT Es soll mit .Net und dann mit Mono. |
Re: Delphi 2006 .net
:?:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 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-2025 by Thomas Breitkreuz