Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Result-Zuweisung wird nicht erkannt
Mitmischer 1703 - Fr 27.02.09 20:37
Titel: Result-Zuweisung wird nicht erkannt
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| unit convert;
interface uses Forms, ShellAPI, Windows; procedure ShellExecuteS (WndH : HWND; Operation : String; FileName : String; Parameters : String; Directory : String; CmdShow : Integer); procedure BoolToInt(Bool : Boolean; IsBool : Integer; IsNot : Integer);
implementation
procedure ShellExecuteS (WndH : HWND; Operation : String; FileName : String; Parameters : String; Directory : String; CmdShow : Integer); var OperationW, FileNameW, ParametersW, DirectoryW, Dummy : PWideChar; begin OperationW := StringToWideChar(Operation, Dummy, 255); FileNameW := StringToWideChar(FileName, Dummy, 255); ParametersW := StringToWideChar(Parameters, Dummy, 255); DirectoryW := StringToWideChar(Directory, Dummy, 255); ShellExecuteW(WndH, OperationW, FileNameW, ParametersW, DirectoryW, CmdShow); end;
procedure BoolToInt(Bool : Boolean; IsBool : Integer; IsNot : Integer); begin if(Bool) then Result := IsBool else result := IsNot; end;
end. |
Hi DF! Ich habe in ein Projekt eine selbsterstellte Unit auf meinem USB-Stick abgespeichert und nun eingebunden. Allerdings erkennt er die Result-Zuweisung (highlighted!) nicht. Das hier ist die
gesamte Unit!
Delete - Fr 27.02.09 20:44
Benenn Bool mal um in z.B. bBool.
Mitmischer 1703 - Fr 27.02.09 20:49
Hat nicht geklappt, das Problem besteht weiterhin!
Delete - Fr 27.02.09 20:50
Dann mach aus procedure mal function ;)
Mitmischer 1703 - Fr 27.02.09 20:53
Ah, klar! :autsch:
Danke sehr! :flehan:
FinnO - Fr 27.02.09 22:26
ma so nebenbei: Gibts das nicht schon?
BoolToString(True) = '1' oder so?
Yogu - Fr 27.02.09 22:34
FinnO hat folgendes geschrieben : |
ma so nebenbei: Gibts das nicht schon?
BoolToString(True) = '1' oder so? |
Die Funktion macht doch was ganz anderes - sie gibt den Parameter
IsBool zurück, wenn der Boolean
True ist, sonst
IsNot.
BoolToStr wandelt den als Integer gecasteten Boolean in einen String um; du könntest sie so definieren:
Delphi-Quelltext
1: 2: 3: 4:
| function BoolToStr(Value: Boolean): String; begin Result := IntToStr(Integer(Value)); end; |
Und jetzt vergleich sie mal mit
BoolToInt ;)
FinnO - Fr 27.02.09 22:48
ob man nun 1 hat oder "isNot" ist doch wurst wie kartoffel^^
Yogu - Fr 27.02.09 22:50
FinnO hat folgendes geschrieben : |
| ob man nun 1 hat oder "isNot" ist doch wurst wie kartoffel^^ |
Ein Beispiel:
Delphi-Quelltext
1:
| Preis := BoolToInt(IsAdult, 6, 3); |
Edit: Beispiel korrigiert
FinnO - Fr 27.02.09 23:00
Dann ist die Bezeichnung verwirrend, weil die Funktion keinen Boolean zurückgibt sondern einen Gleitkommawert. BoolToFloat oder BoolToInt macht da doch mehr sinn oder?
Yogu - Fr 27.02.09 23:02
FinnO hat folgendes geschrieben : |
| Dann ist die Bezeichnung verwirrend, weil die Funktion keinen Boolean zurückgibt sondern einen Gleitkommawert. BoolToFloat oder BoolToInt macht da doch mehr sinn oder? |
Sie heißt ja auch
BoolToInt, hab mich verschrieben :oops:
dummzeuch - Fr 27.02.09 23:23
FinnO hat folgendes geschrieben : |
ma so nebenbei: Gibts das nicht schon?
BoolToString(True) = '1' oder so? |
Ja:
twm
GTA-Place - Sa 28.02.09 00:51
X := IfThen(isAdult, 6, 3); ist eine nette Funktion, die scheinbar wenige kennen, aber das von z.B. PHP bekannte
x = (isAdult) ? 6 : 3; ersetzt.
Delphi-Quelltext
1: 2: 3: 4:
| function IfThen(AValue: Boolean; const ATrue: Integer; const AFalse: Integer = 0): Integer; overload; function IfThen(AValue: Boolean; const ATrue: Int64; const AFalse: Int64 = 0): Int64; overload; function IfThen(AValue: Boolean; const ATrue: Double; const AFalse: Double = 0.0): Double; overload; function IfThen(AValue: Boolean; const ATrue: string; const AFalse: string = ''): string; overload; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!