beim experimentieren habe ich grad festgestellt, dass die CASE Anweisung sogar mit Strings funktioniert.
Das kannte ich noch garnicht, gefällt mir aber ausgesprochen gut.
In den Beschreibungen habe ich "bisher" auch noch nichts darüber gefunden. Ich glaube bei Delphi ging das auch nicht.
Code: Alles auswählen
//------------------------------------------------------------------------------
// Es muss ermittelt werden um welchen Parameter es sich handelt, der
// vom Gerät KEL103 zurück gesendet wurde.
// Erstaunlicherweise funktioniert die case Anweisung sogar mit Strings,
// ich bin begeistert.
// Die Liste ist noch nicht vollständig, ich habe aber auch noch nicht alles erforscht
function GetMeasureOwner(const unitStr:string):integer;
begin
case unitStr of
'A' : result:=1; // Stromwert in Ampere
'V' : result:=2; // Spannungswert in Volt
'AH' : result:=3; // Kapazität in Ampere Stunden
'OHM': result:=4; // Widerstand in Ohm
'M' : result:=5; // Zeitwert in Minuten
'ON' : result:=6; // Eingangs Status Buchsen sind eingeschaltet !! auch BEEP
'OFF': result:=7; // Eingangs Status Buchsen sind ausgeschaltet ! auch BEEP
'CC' : result:=8; // Constant Current Modus aktiv
'CV' : result:=9; // Constant Voltage Modus aktiv
'CR' : result:=10; // Constant Resistor Modus aktiv
'CW' : result:=11; // Constant Wattage (Power) Modus aktiv
'BATTERY' : result:=12; // Batterie testmodus aktiv
'SHORt' : result:=13; // Kurzschluss Modus aktiv
'CONTINOUSCV' : result:=14; //
'OPP' : result:=15; // Over Power Protection
else result:=0; // ansonsten kann das Ergebnis nicht zugeordnet werden
end; // case
end;
procedure TForm1.FormCreate(Sender: TObject);
var s:string;
begin
s:='BATTERY';
caption:=IntToStr(GetMeasureOwner(s));
end;