Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Pointer zu Typen ! Warum ? (https://www.delphipraxis.net/113500-pointer-zu-typen-warum.html)

bluesbear 8. Mai 2008 21:15

Re: Pointer zu Typen ! Warum ?
 
Ach menno - du hast doch fast immer eine Antwort auf alles. Außerdem hattest du die Antwort auf die Frage hier ja schon genannt. :zwinker:

BUG 8. Mai 2008 22:28

Re: Pointer zu Typen ! Warum ?
 
Achtung, ich weiß nicht wie das Folgende mit Delphi > Delphi 3 aussieht :mrgreen:

Delphi-Quellcode:
procedure test(a: ^byte);
begin
end;
Kann ich ich nicht kompilieren,
Delphi-Quellcode:
type PByte = ^Byte;
// ...
procedure test(a: PByte);
begin
end;
geht.

MfG,
Bug

mkinzler 8. Mai 2008 22:31

Re: Pointer zu Typen ! Warum ?
 
Würde man in Delphi auch so lösen:
Delphi-Quellcode:
procedure test(var a: Byte);

nicodex 8. Mai 2008 22:53

Re: Pointer zu Typen ! Warum ?
 
Zitat:

Zitat von mkinzler
Würde man in Delphi auch so lösen:
Delphi-Quellcode:
procedure test(var a: Byte);

Nicht, wenn es sich um einen 'optionalen' Parameter handelt (TFoo(nil^) geht zwar auch, aber 'schön' ist was anderes).

SubData 9. Mai 2008 07:59

Re: Pointer zu Typen ! Warum ?
 
Nehmen wir an, du möchtest einer Prozedur ein Record übergeben, welches selbst einen Verweis auf die Prozedur hat.

Delphi-Quellcode:
  PTFormatProcedure = ^TFormatProcedure;

  TFormatRecordEntry = record
    iProc  : Byte;
    pFunc  : PTFormatProcedure;
  end;

  TFormatProcedure = function(const re: TFormatRecordEntry; const xSet: TDataSet): String;
Du könntest im Record selbst kein Feld auf TFormatProcedure definieren,
da der Compiler an dieser Stelle die Prozedur noch nicht kennt.
Andersrum kannst du das Record nicht danach definieren, da es
ein Parameter für die Prozedur ist. Mit einem Pointer wäre dies machbar :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 Uhr.
Seite 2 von 2     12   

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