AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Procedure beenden

Ein Thema von vip11 · begonnen am 19. Mai 2009 · letzter Beitrag vom 20. Mai 2009
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.122 Beiträge
 
Delphi 12 Athens
 
#11

Re: Procedure beenden

  Alt 19. Mai 2009, 21:32
selbst mit IFs wäre kein EXIT nötig, wenn man das ELSE verwenden würde
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.325 Beiträge
 
Delphi XE2 Professional
 
#12

Re: Procedure beenden

  Alt 19. Mai 2009, 21:38
auch bei "case" wäre kein exit notwendig:

Delphi-Quellcode:
case pos of
  1:begin
      button1.Top := 120;
      button1.Left := 8;
      pos := 2;
    end;
  2:begin
      //usw..
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#13

Re: Procedure beenden

  Alt 19. Mai 2009, 21:41
Zitat von Fussball-Robby:
Zitat von Forlan:
Delphi-Quellcode:
if pos = 1 then
begin
  button1.Top := 120;
  button1.Left := 8;
  pos := 2;
  exit;
end;
so sollte es auch besser aussehen...[/Edit]
Und noch besser:
Delphi-Quellcode:
case pos of
  1:begin
      button1.Top := 120;
      button1.Left := 8;
      pos := 2;
      exit;
    end;
  2:begin
      //usw..
(Wie Dax bereits sagte)
Das Exit erscheint mir aber in beiden Varianten recht überflüssig. Einfach das Pferd von hinten aufzäumen.
Delphi-Quellcode:
case Pos of
  4 : begin
      ...
  end;
  ...
  1 : begin
      ...
  end;
  5 : begin
      ...
  end;
end;
Gruß oki
42
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Procedure beenden

  Alt 19. Mai 2009, 21:55
Zitat von Helmi:
auch bei "case" wäre kein exit notwendig:
Zitat von oki:
Das Exit erscheint mir aber in beiden Varianten recht überflüssig.
War nur ein Copy&Paste-Fehler. Es ist klar, dass das Exit überflüssig ist, denn beim case-of-statement wird in jedem Fall nur ein Codeblock angesprungen.
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.122 Beiträge
 
Delphi 12 Athens
 
#15

Re: Procedure beenden

  Alt 19. Mai 2009, 22:04
wozu denn das weiterzählen selber übernehmen?

Delphi-Quellcode:
case Pos of
  0 : begin
    button1.Top := 120;
    button1.Left := 8;
  end;
  1 : begin
      ...
  end;
  ...
  4 : begin
      ...
  end;
end;
Pos := (Pos + 1) mod 5;




procedure TForm1.FormCreate(Sender: TObject);
begin
  pos := 0;
end;
oder in "länger" (für 1 bis 5)
Delphi-Quellcode:
case Pos of
  ..
end;
Inc(Pos);
if Pos > 5 then Pos := 1;
oder
Delphi-Quellcode:
case Pos of
  ..
end;
if Pos < 4 then Inc(Pos)
else Pos := 1;
oder
oder
oder
...
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#16

Re: Procedure beenden

  Alt 19. Mai 2009, 22:09
Zitat von Fussball-Robby:
Zitat von Helmi:
auch bei "case" wäre kein exit notwendig:
Zitat von oki:
Das Exit erscheint mir aber in beiden Varianten recht überflüssig.
War nur ein Copy&Paste-Fehler. Es ist klar, dass das Exit überflüssig ist, denn beim case-of-statement wird in jedem Fall nur ein Codeblock angesprungen.
Jetzt werd ich doch unsicher. Wenn ich Pos in der Case-Anweisung auf einen nachfolgenden Wert korrigiere

Nee, klar, bei case ist das unerheblich. Nur bei den if-Anweisungen würde es einem ohne Exit auf die Füße fallen, außer man macht es so, wie es himitzu vorgeschlagen hat.

Gruß oki
42
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Procedure beenden

  Alt 19. Mai 2009, 23:29
Exit ist unnötig.
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#18

Re: Procedure beenden

  Alt 20. Mai 2009, 07:16
Zitat von omata:
Exit ist unnötig.
mit den if-Anweisungen aber nur wie himitsi es beschrieben hat oder bei Nutzung der else-Zweige.

Gruß oki
42
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#19

Re: Procedure beenden

  Alt 20. Mai 2009, 10:29
Zitat von SirThornberry:
hmm, ein case bei 5 Werten ist grenzwertig. Lohnt sich das in Sachen geschwindigkeit da wirklich schon? Denn ein Case ist nicht immer schneller.
Bei der Wahl case/if kommt es doch (im Normalfall) nicht auf die Geschwindigkeit an. Der resultierende Code soll lesbar und verständlich sein. Und da ist ein case meist besser als eine if-else-Kaskade.
Uli Gerhardt
  Mit Zitat antworten Zitat
vip11

Registriert seit: 22. Jul 2008
32 Beiträge
 
#20

Re: Procedure beenden

  Alt 20. Mai 2009, 15:00
Also ich hab mich jetzt für die case variante entschieden da es von der geschwindigkeit ausreicht und auch schön übersichtlich ist.
Eigentlich war das Prog nur als kleine übung gedacht, da sieht man mal wieder wie schnell man sowas verlernt
aber läuft jetzt alles
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz