Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism Delphi 2006 .net (https://www.delphipraxis.net/82824-delphi-2006-net.html)

fordka 20. Dez 2006 09:23


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

Bernhard Geyer 20. Dez 2006 09:28

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:

Wie gehe ich mit Pointer um, gibt es eine einfache Möglichkeit diese irgendwie um zuwandeln?
Welches Problem hast Du konkret. Es gibt nicht die Lösung. Entweder muss (bei DLL's) die Importangabe angepaßt werden oder es muss für manche Probleme komplett eine ander Lösung gefunden werden (File of XYZ)

fordka 20. Dez 2006 09:46

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

Bernhard Geyer 20. Dez 2006 09:49

Re: Delphi 2006 .net
 
Zitat:

Zitat von fordka
Das bestehende Projekt soll in .Net weiter entwickelt werden. (Vorgabe vom Kunden).

Auch wenn es Kundenvorgabe ist: Welche Vorteile verspricht er sich davon. Es geht auch darum das Du/der Kunde nicht etwas von einer .NET-Lösung erwartet, die man mit einem (VCL).NET- (Oder auch WinForms-)Programm nicht erreichen kann.

Zitat:

Zitat von fordka
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.

Beispiele?

Falls Du 3th-Party-Komponenten hast: Gibt es davon eine VCL.NET-Version.

Phoenix 20. Dez 2006 09:52

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.

fordka 20. Dez 2006 09:54

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

fordka 20. Dez 2006 09:55

Re: Delphi 2006 .net
 
Zitat:

Zitat von Phoenix
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.


Kannst Du mir das ein wenig genauer erklären?

Phoenix 20. Dez 2006 10:02

Re: Delphi 2006 .net
 
Zitat:

Zitat von fordka
Es wohl so das über diesen weg eine Plattformunabhängigkeit erreicht werden soll. Ich bin auch nur Angestellt und mach was mir gesagt wird.

Die werdet ihr mit der VCL.net garantiert nicht erreichen können. Das nur so zur Info.

Zitat:

Zitat von fordka
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

Da steht doch schon alles wichtige drin. In der uKonfiguration.pas wird in der Zeile 277 ein nicht Typsicherer Wert übergeben.

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:
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;
Wird zu:
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;

xaromz 20. Dez 2006 10:04

Re: Delphi 2006 .net
 
Hallo,
Zitat:

Zitat von fordka
Es wohl so das über diesen weg eine Plattformunabhängigkeit erreicht werden soll. Ich bin auch nur Angestellt und mach was mir gesagt wird.

Mit VCL .Net kannst Du die Plattformunabhängigkeit aber vergessen. Intern baut die komplett auf dem Win32-API auf. Du müsstest schon die VCL durch Winforms ersetzen, um von Windows unabhängig zu werden.

Gruß
xaromz

Bernhard Geyer 20. Dez 2006 10:05

Re: Delphi 2006 .net
 
Zitat:

Zitat von fordka
Es wohl so das über diesen weg eine Plattformunabhängigkeit erreicht werden soll. Ich bin auch nur Angestellt und mach was mir gesagt wird.

Und dann VCL.NET. Kannst deinen Chef sagen das mit der VCL.NET genau dies nicht erreicht werden kann.
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 fordka
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

Zeig mal den Codeauschnitt dazu.

Zitat:

Zitat von fordka
Sorry, habe leider wenig Ahnung vom Projekt ( habe gerade erst angefangen) und noch weniger von Delphi

Ob das der Sinnvolle Ansatz ist? :gruebel:
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?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 Uhr.
Seite 1 von 2  1 2      

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