Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Befehl kürzen (https://www.delphipraxis.net/108278-befehl-kuerzen.html)

grenzgaenger 11. Feb 2008 13:52

Re: Befehl kürzen
 
poste doch mal dein menü dazu, damit man sich etwas vorstellen kann und ggf. was dein progy damit machen will...

denke, top down kommen wir eher zum ziel als per buttom up...

ausserdem solltest dir mal überlegen 'n struktogramm für deine logik zu entwerfen und dies ggf. gleich mit dranhängen. so sieht man viel schneller was das ganze sein soll ...

Popov 11. Feb 2008 14:17

Re: Befehl kürzen
 
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.

R34DM3 11. Feb 2008 18:45

Re: Befehl kürzen
 
Liste der Anhänge anzeigen (Anzahl: 1)
hey das sieht echt so aus wie das was ich mir
vorgestellt hatte :D

Danke popov!
ich werds mal versuchen das zweite wird denk ich net
funzen aber ich werds ja sehen

hab ma die exe angehangen
ahja und nein es ist nich sinnlos was ich da schreibe
die abfrage die ihr seht regelt, dass kein fahrzeug was im status
4/3/6/7/8 in einen einsatz gezogen werden kann - oder dass zumindest
eine ausgabe kommt die dem user sagt dass ein fahrzeug nich einsatzbereit ist.

wie schon gesagt das prog is so meine eigene bastelei - also nich dazu gedacht
dass sich jmd ohne "einweisung" damit beschäftigt
und bis jetzt waren die rückmeldungen immer recht gut - mal abgesehen von den üblichen
kinderkrankheiten (bugs)

also dann herzlichen dank!

PS: @ WS1976 - kurze durchsage nich aufn sack gehn ;)

DeddyH 11. Feb 2008 18:49

Re: Befehl kürzen
 
Zitat:

PS: @ WS1976 - kurze durchsage nich aufn sack gehn ;)
Tapfer, kann ich da nur sagen.

WS1976 12. Feb 2008 13:47

Re: Befehl kürzen
 
Hallo

dümmlich kann ich da nur sagen.

Rainer


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:55 Uhr.
Seite 3 von 3     123   

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