Einzelnen Beitrag anzeigen

1967Schorsch

Registriert seit: 28. Feb 2020
Ort: Dinslaken
8 Beiträge
 
Delphi 6 Enterprise
 
#1

case of "anstatt constanten - Variablen einsetzen

  Alt 8. Jul 2020, 14:59
Hallo zusammen,
ich nutze Delphi 6 und bin eher der unbedarfte Programm Nutzer.

Für meinen vor Jahren entwickelten Bordcomputer Adapter für eine Audi 80 Cabrio TDI und nun frisch für einen Audi 100 TDI (fast mit H-Kennzeichen) möchte die Abstimmung, des Adapters auf das Fahrzeug, komfortabler gestalten. Dazu habe ich eine Software geschrieben die zwei Zeilen der Eprom Daten des AVR Microcontrollers verändern und wieder in den AVR zurückschreiben kann.

Da die Daten für den Audi 100 noch nicht wirklich festliegen möchte ich die Stammdaten ( liegen zur Laufzeit "dezimal" in den unteren 32 Editfelder der Software) in die Simulation einbinden. Jedes einzelen der 32 Editfelder ist über den Spinbutton unterhalb zwischen 1 und 254 veränderbar.

Für die Simulation des Verbrauchswertes habe ich zunächst den Eingang der Einspritzpumpenwerte als integer Wert eingebunden. Über eine case of hole ich mit verschieden Stützwerte der Berechnung.

Nun kommt mein Problem: die Werte in der case of sind ja Constanten und die möchte ich aber entsprechend der Werte in den Editfeldern 32-64 verändern.
Einbinden der Variablen funktioniert nicht..... mit If then else möchte ich nicht arbeiten... und so die Frage was gibt es noch für Möglichkeiten die Werte der Editfelder entsprechend dem ESP integer Wert auszulesen. Habe schon mal was über eine Lockup Tabelle gelesen komm da aber nicht weiter.


Ich bin für jeden Hinweis Dankbar, hier noch die case of mit den Werte. Die Werte liegen auch in einem Array.

DANKE !!!


Zitat:
// function ESPwerte aus der Case select Tabelleauslesen
function ESPwerte(ESP : integer ):integer ;
var
i, EZ :Integer;

begin
i := ESP;

case i of
0: // 0-7=>0
begin
EZ:= 0;
end;
1: // 8-15=>8
begin
EZ:= 0;
end;
2: // 16-23=>16
begin
EZ:= 0;
end;
3: // 24-31=>24
begin
EZ:= 0;
end;
4: // 32-39=>32
begin
EZ:= 0;
end;
5: // 40-47=>40
begin
EZ:= 0;
end;
6: // 48-55=>47
begin
EZ:= 0;
end;
7: // 56-63=>54
begin
EZ:= 3;
end;
8: //64-71=>61
begin
EZ:= 11;
end;
9: //72-79=>68
begin
EZ:= 20;
end;
10: // 80-87
begin
EZ:= 30;
end;
11: //88 - 95 => 79
begin
EZ:= 41;
end;
12: //96 - 103 => 83
begin
EZ:= 53;
end;
13: //104 - 111
begin
EZ:= 66;
end;
14: //112 - 119
begin
EZ:= 80;
end;
15: //120 - 127
begin
EZ:= 94;
end;
16: //128 - 135
begin
EZ:= 108;
end;
17: //136 - 143
begin
EZ:= 122;
end;
18: //144 - 151
begin
EZ:= 135;
end;
19: //152 - 159
begin
EZ:= 148;
end;
20: //160 - 167
begin
EZ:= 159;
end;
21: //168 - 175
begin
EZ:= 170;
end;
22: //176 - 183
begin
EZ:= 179;
end;
23:
begin
EZ:= 187;
end;
24:
begin
EZ:= 193;
end;
25:
begin
EZ:= 198;
end;
26:
begin
EZ:= 202;
end;
27:
begin
EZ:= 205;
end;
28:
begin
EZ:= 207;
end;
29:
begin
EZ:= 208;
end;

else
begin
EZ:= 208;
// ShowMessage ('ESP hier ende ');
end;
end; // Sehr Wichtig: Das End von Case!

result :=EZ;
end;
Miniaturansicht angehängter Grafiken
tabelle-edit-tchart.jpg  
Georg
  Mit Zitat antworten Zitat