Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Pointer auf Record (https://www.delphipraxis.net/96614-pointer-auf-record.html)

Muetze1 28. Jul 2007 22:48

Re: Pointer auf Record
 
Ok, und wie gibst du die in der o.g. Procedure ermittelten Array Inhalte zurück? Kannst du die entsprechende Funktion auch zeigen?

Gargamel 28. Jul 2007 23:35

Re: Pointer auf Record
 
Ich habe es geschafft.


Die Variablen im record habe ich von string in PChar geändert.

Delphi-Quellcode:
rec_displaydevice = record
  DeviceName:PChar;
  DeviceString:PChar;
  Monitorname:PChar;
end;

var displaydevice:array[1..4] of rec_displaydevice;

Das Kopieren in den Record geht jetzt so:

Delphi-Quellcode:
displaydevice[NumberDisplayDevice].DeviceName:=StrAlloc(32);
StrPCopy(displaydevice[NumberDisplayDevice].DeviceName,Info.DeviceName);

displaydevice[NumberDisplayDevice].DeviceString:=StrAlloc(128);
StrPCopy(displaydevice[NumberDisplayDevice].DeviceString,Info.DeviceString);

AdapterName := StrAlloc(SizeOf(Info.DeviceName));
StrCopy(AdapterName, Info.DeviceName);

EnumDisplayDevices(AdapterName, 0, Info, 0);

displaydevice[NumberDisplayDevice].Monitorname:=StrAlloc(128);
StrPCopy(displaydevice[NumberDisplayDevice].Monitorname,Info.DeviceString);

Ich kann nur hoffen, dass StrAlloc(32) bzw. StrAlloc(128) richtig ist, dadurch dass Info.DeviceName ein array[0..31] of Char bzw. Info.DeviceString ein array[0..127] of Char ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:53 Uhr.
Seite 3 von 3     123   

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