Thema: Delphi Befehl kürzen

Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#22

Re: Befehl kürzen

  Alt 11. Feb 2008, 15:17
Ist nicht geprüft, sollte aber stimmen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

  function Abfrage(gbStr, gb20Str, btbgStr, fkennungXStr, fkennung4Str: String;
    var falscherstatus: Boolean): Integer;
  begin
    if (gbStr = fkennungXStr) and
       (
       (btbgStr <> '4') or (falscherstatus = false) or
       (btbgStr <> '6') or (btbgStr <> '7') or
       (btbgStr <> '8') or (btbgStr <> '3')
       )
      then Result := '3'
    else
      falscherstatus := (gb20Str = fkennung4Str) and
         (btbgStr = '1') or (btbgStr = '2') or (btbgStr = '5');
  end;

begin
  btbg19.Caption := Abfrage(gb19.Caption, gb20.Caption, btbg19.Caption,
    Fahrzeug1.fkennung, Fahrzeug4.fkennung, falscherstatus);

  btbg19.Caption := Abfrage(gb19.Caption, gb20.Caption, btbg19.Caption,
    Fahrzeug2.fkennung, Fahrzeug4.fkennung, falscherstatus);

  btbg19.Caption := Abfrage(gb19.Caption, gb20.Caption, btbg19.Caption,
    Fahrzeug3.fkennung, Fahrzeug4.fkennung, falscherstatus);

  btbg19.Caption := Abfrage(gb19.Caption, gb20.Caption, btbg19.Caption,
    Fahrzeug4.fkennung, Fahrzeug4.fkennung, falscherstatus);

  btbg20.Caption := Abfrage(gb20.Caption, gb20.Caption, btbg20.Caption,
    Fahrzeug1.fkennung, Fahrzeug4.fkennung, falscherstatus);

  btbg20.Caption := Abfrage(gb20.Caption, gb20.Caption, btbg20.Caption,
    Fahrzeug2.fkennung, Fahrzeug4.fkennung, falscherstatus);

  btbg20.Caption := Abfrage(gb20.Caption, gb20.Caption, btbg20.Caption,
    Fahrzeug3.fkennung, Fahrzeug4.fkennung, falscherstatus);

  btbg20.Caption := Abfrage(gb20.Caption, gb20.Caption, btbg20.Caption,
    Fahrzeug4.fkennung, Fahrzeug4.fkennung, falscherstatus);
end;
Zuletzt ist der Code nur noch wegen der langen Namen so ausführlich. Wahrscheinlich kann man das noch mehr kürzen, aber zu mehr habe ich keine Lust

Allerdings scheint der Code unsinnig zu sein, da sich die Werte permanent überschreiben.

EDIT:

Leider weiß ich nicht ob Fahrzeug1 bis Fahrzeug4 Komponenten sind, sonst könnte man es noch kürzen:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);

  function Abfrage(gbStr, gb20Str, btbgStr, fkennungXStr, fkennung4Str: String;
    var falscherstatus: Boolean): Integer;
  begin
    if (gbStr = fkennungXStr) and
       (
       (btbgStr <> '4') or (falscherstatus = false) or
       (btbgStr <> '6') or (btbgStr <> '7') or
       (btbgStr <> '8') or (btbgStr <> '3')
       )
      then Result := '3'
    else
      falscherstatus := (gb20Str = fkennung4Str) and
         (btbgStr = '1') or (btbgStr = '2') or (btbgStr = '5');
  end;

var
  i: Integer;

begin
  for i := 1 to 4 do
    btbg19.Caption := Abfrage(gb19.Caption, gb20.Caption, btbg19.Caption,
      TAbc(FindComponent('Fahrzeug'+IntToStr(i)).fkennung, Fahrzeug4.fkennung,
      falscherstatus);

  for i := 1 to 4 do
    btbg20.Caption := Abfrage(gb20.Caption, gb20.Caption, btbg20.Caption,
      TAbc(FindComponent('Fahrzeug'+IntToStr(i)).fkennung, Fahrzeug4.fkennung,
      falscherstatus);
end;
Aber wie gesagt, je mehr man es kürzt, umso mehr sieht der Code nach Unsinn aus.
  Mit Zitat antworten Zitat