![]() |
combobox.text => PChar
Hallo
ich will den combobox1.text in einer variabel speichern, die von dem typen PChar sein muss (für andere funktionen) wie kann ich das umwandeln??? mfg |
Re: combobox.text => PChar
Einfacher Cast nach PChar. Oder: pointer(Combobox1.Text) oder @Combobox1.Text[1].
|
Re: combobox.text => PChar
hm leider klappen die beiden letzteren möglichkeiten nicht so wie soe sollen
wie ist das den mit dem cast gemeint?? also ich will mir ein paar laufwerkinfos ausgeben lassen
Delphi-Quellcode:
defaulthdd := 'C:\';
Label4.caption := DriveType(PChar(defaulthdd)); if Label4.Caption <> 'unbekanntes Laufwerk' then begin Label6.Caption := inttostr(GetSerialNumber(PChar(defaulthdd))); if Label6.Caption = '0' then Label6.Caption := 'Seriennummer unbekannt'; GetDiskFreeSpaceEx(PChar(defaulthdd), freeCaller, total, nil); label8.caption:=IntToStr(freeCaller)+' Bytes'; label10.caption:= IntToStr(total)+' Bytes'; end; (defaulthdd wird als string deklariert) das geht soweit. dies ist fürs laden des forms wenn ich allerdings in dem combobox auslesen will (wo man die hdd oder cd laufwerk oder so auswählen kann)
Delphi-Quellcode:
dann wird nur noch der laufwerkstyp richtig angezeigt :(
defaulthdd := Combobox1.Text;
Label4.caption := DriveType(PChar(defaulthdd)); if Label4.Caption <> 'unbekanntes Laufwerk' then begin Label6.Caption := inttostr(GetSerialNumber(PChar(defaulthdd))); if Label6.Caption = '0' then Label6.Caption := 'Seriennummer unbekannt'; GetDiskFreeSpaceEx(PChar(defaulthdd), freeCaller, total, nil); label8.caption:=IntToStr(freeCaller)+' Bytes'; label10.caption:= IntToStr(total)+' Bytes'; end; bei den bytes steht jewalls 0 und bei der serien nr kommt beim laden zwar unbekannt aber beim wechsel kommen total komsiche zahlen die teilweise sogar negativ sind :( kann mir wer helfen? mfg |
Re: combobox.text => PChar
In dem Source hast du doch schon an allen Ecken und Enden Casts nach PChar drin. Zum Beispiel hier:
Delphi-Quellcode:
... := DriveType(PChar(defaulthdd));
|
Re: combobox.text => PChar
Moin Trashar,
wie sind denn die Variablen deklariert? Wie ist GetSerialNumber deklariert? Eigentlich sollte das so funktionieren. Das GetDiskFreespaceEx eine Funktion ist, die eine booleschen Wert zurückgibt, könntes Du das mal ausnutzen, und in Fehlerfalle mit
Delphi-Quellcode:
mal anzeigen lassen, was schiefgegangen ist.
ShowMessage(SysErrorMessage(GetLastError));
Wenn Du eh' zwei Routinen hast, die bis auf die erste Zeile identisch sind, bietet es sich an diese als eine Funktion/Methode zusammenzufassen, und dann nur noch den Parameter (das Laufwerk) zu übergeben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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