Thema: Delphi Pointer auf Record

Einzelnen Beitrag anzeigen

Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#22

Re: Pointer auf Record

  Alt 29. Jul 2007, 00:35
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.
  Mit Zitat antworten Zitat