![]() |
BOOLEAN? Programm Problem!
Ich hoffe mal die Kategorie die ich gewählt habe stimmt ;-)
Also ich ahbe ein Programm geschrieben udn habe ein Kleines Problem: ICh habe eine Abfrage der Laufwerksnamen gemacht sprich verschiedene Radiobuttons zb. mit der Caption "C:" wird dann ergänzt durch C: Lokaler Datenträger. Soweit funktioniert jedoch alles. Dann habe ich noch einen Button auf meine Form gesetzt und ihn per if abfrage mit den Radiobuttons verknüpft. Ich mochte jedoch sobald die Caption zb. "C: Leer" eine messagebox anzeigen lassen. Wie kann ich das auch noch einfügen in meinen code?
Delphi-Quellcode:
Hier habe ich das schon mal ausprobiert funktioniert aber leider nicht
procedure TForm1.Button2Click(Sender: TObject);
begin if Radiobutton4.Checked then Shellexecute(handle, 'open', 'U:', '', nil, SW_SHOW); if Radiobutton8.Checked then Shellexecute(handle, 'open', 'T:', '', nil, SW_SHOW); if Radiobutton6.Checked then Shellexecute(handle, 'open', 'D:', '', nil, SW_SHOW); if Radiobutton7.Checked then Shellexecute(handle, 'open', 'E:', '', nil, SW_SHOW); if Radiobutton5.Caption := 'Leer' then Application.MessageBox('Das is ne Messagebox!','aloa he',MB_OK); else begin if Radiobutton5.Checked then Shellexecute(handle, 'open', 'C:', '', nil, SW_SHOW) Er sagt der Ausdruck muss boolean sein ich weiß nur leider nciht wie ich boolean verwende:-( Vlt könnte mir das einer von euch erklären! Danke Mfg DaddyRe |
Re: BOOLEAN? Programm Problem!
Delphi-Quellcode:
Du musst hier statt := (Zuweisungsoperator) den Vergleichsoperator = verwenden ;)
if Radiobutton5.Caption := 'Leer' then
|
Re: BOOLEAN? Programm Problem!
ahhh danke :-)
|
Re: BOOLEAN? Programm Problem!
....noch ein problem :-(
Der code stimmt soweit nur wenn ich dann C: anklcike und auf den button open drive klicke kommt die messagebox auch obwohl C: einen Namen hat und nciht leer ist, das kommt jedoch daher das U: Leer ist! Wie kann cih diese befehle voneinander trennen? ...bissel komishc beschrieben *duckundwegrenn* Mfg DaddyRe |
Re: BOOLEAN? Programm Problem!
ich hab dein problem zwar net ganz verstanden, aber anscheinend brauchst du alle laufwerkbuchstaben, laufwerktyp und bezeichnungen eines rechners
evtl hilft dir der folgende code weiter (hab ich grad in meiner hilfe gefunden):
Delphi-Quellcode:
Laufwerke auf einem Computer ermitteln
{ Fügt all fixen Laufwerke in Combobox1 ein. Um z.B alle CD-Rom Laufwerke zu ermitteln, einfach DRIVE_CDROM anstatt die Konstante DRIVE_FIXED nehmen. } procedure List_Drives; const DRIVE_UNKNOWN = 0; DRIVE_NO_ROOT_DIR = 1; DRIVE_REMOVABLE = 2; DRIVE_FIXED = 3; DRIVE_REMOTE = 4; DRIVE_CDROM = 5; DRIVE_RAMDISK = 6; var r: LongWord; Drives: array[0..128] of char; pDrive: PChar; begin r := GetLogicalDriveStrings(SizeOf(Drives), Drives); if r = 0 then Exit; if r > SizeOf(Drives) then raise Exception.Create(SysErrorMessage(ERROR_OUTOFMEMORY)); pDrive := Drives; while pDrive^ <> #0 do begin if GetDriveType(pDrive) = DRIVE_FIXED then Form1.ComboBox1.Items.Add(pDrive); Inc(pDrive, 4); end; end; //Den Laufwerksnamen ermitteln function GetVolumeName(DriveLetter: Char): string; var dummy: DWORD; buffer: array[0..MAX_PATH] of Char; oldmode: LongInt; begin oldmode := SetErrorMode(SEM_FAILCRITICALERRORS); try GetVolumeInformation(PChar(DriveLetter + ':\'), buffer, SizeOf(buffer), nil, dummy, dummy, nil, 0); Result := StrPas(buffer); finally SetErrorMode(oldmode); end; end; // Beispiel: procedure TForm1.Button1Click(Sender: TObject); begin Caption := GetVolumeName('c'); end; //Den Laufwerkstyp feststellen procedure TForm1.Button1Click(Sender: TObject); var typ: Integer; s: string; begin s := 'C:\'; typ := GetDriveType(PChar(s)); if Typ <> 0 then case typ of DRIVE_REMOVABLE: begin ShowMessage('Drive Removable / Diskette'); end; DRIVE_FIXED: begin ShowMessage('Drive fixed / Festplatte'); end; DRIVE_CDROM: begin ShowMessage('CD ROM Drive'); end; DRIVE_RAMDISK: begin ShowMessage('RAM Drive'); end; DRIVE_REMOTE: begin ShowMessage('Remote Drive / Netzlaufwerk'); end; end; end; |
Re: BOOLEAN? Programm Problem!
danke
aber ich habe einen anderen coder der etwas kürzer ist wenn ihr wollt poste ich ihn euhc meldet euch einfach... |
Re: BOOLEAN? Programm Problem!
dann poste mal, is immer gut was neues zu sehn (den oberen code kann man natürlich noch zusammenfassen, is nur auseinandergenommen falls man nicht alles braucht, zb, wenn man nur lauferksbuchstaben brauch)
|
Re: BOOLEAN? Programm Problem!
So,
Delphi-Quellcode:
function GetVolumeName(DriveLetter: Char): string;
var dummy: DWORD; buffer: array[0..MAX_PATH] of Char; oldmode: LongInt; begin oldmode := SetErrorMode(SEM_FAILCRITICALERRORS); try GetVolumeInformation(PChar(DriveLetter + ':\'), buffer, SizeOf(buffer), nil, dummy, dummy, nil, 0); Result := StrPas(buffer); finally SetErrorMode(oldmode); end; end; // Example, Beispiel: procedure TForm1.Button1Click(Sender: TObject); begin Caption := GetVolumeName('c'); end; |
Re: BOOLEAN? Programm Problem!
@DaddyRe
falls es dir nioch nicht aufgefallen ist, du hast genau den gleichen code wie ich gepostet ich hab halt nur noch ne funktion dabei, welche den Laufwerkstyp feststellt und dann noch eine um alle laufwerkbuchstaben zu erahlten (sind halt 3 fkt, wenn man nur eine braucht, dann nimmt man auch nur eine) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 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