Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion richtig deklarieren (https://www.delphipraxis.net/152732-funktion-richtig-deklarieren.html)

AlexII 4. Jul 2010 11:18

AW: Komme mit einer Funktion nicht weiter
 
Zitat:

Zitat von mkinzler (Beitrag 1033370)
Wolltest du nicht VolumeChange() statt .VolumeBarChange() aufrufen?

Ok danke, war mein Fehler. :roteyes:

jfheins 4. Jul 2010 11:21

AW: Komme mit einer Funktion nicht weiter
 
Zitat:

Zitat von AlexII (Beitrag 1033379)
Also für mich ist es besser so, voll Übersichtlich. :thumb:

Ich finde ein
Delphi-Quellcode:
end
else if (x < 33)
begin
übersichtlicher. Aber ich rücke auch niemals das begin ein, sondern immer nur das Zeug zwischen begin und end wird eine Ebene weiter eingerückt. In der Hinsicht bin ich konsequent.

Aber wir wollen hier ja keinen OT-Streit vom Zaun brechen. Zumal sich ein case hier geradezu aufdrängt ;)

AlexII 4. Jul 2010 11:25

AW: Komme mit einer Funktion nicht weiter
 
Zitat:

Zitat von jfheins (Beitrag 1033381)
übersichtlicher. Aber ich rücke auch niemals das begin ein, sondern immer nur das Zeug zwischen begin und end wird eine Ebene weiter eingerückt. In der Hinsicht bin ich konsequent.

Aber wir wollen hier ja keinen OT-Streit vom Zaun brechen. Zumal sich ein case hier geradezu aufdrängt ;)

Bei mir kann ich aber gleicht sehen welches "if" zur welchem "begin" gehört. :thumb:

Bei "case" kann ich doch den Wertebereich zwischen zwei Zahlen so abfragen: "0-33:", oder?

mkinzler 4. Jul 2010 11:27

AW: Funktion richtig deklarieren
 
Zitat:

Bei mir kann ich aber gleicht sehen welches "if" zur welchem "begin" gehört.
Aber auf die Schnelle nicht mehr, welches
Delphi-Quellcode:
end
zu welchem
Delphi-Quellcode:
begin
, was ich als wichtiger erachte

jfheins 4. Jul 2010 11:29

AW: Komme mit einer Funktion nicht weiter
 
Zitat:

Zitat von AlexII (Beitrag 1033383)
Bei "case" kann ich doch den Wertebereich zwischen zwei Zahlen so abfragen: "0-33:", oder?

Nein. Das geht mit 0..33: ;)

himitsu 4. Jul 2010 11:30

AW: Komme mit einer Funktion nicht weiter
 
Zitat:

Zitat von Matze (Beitrag 1033369)
Da du keinen Wert in der Funktion zurück gibst (kein "Result := ..."), kannst du eine Prozedur daraus machen:

Delphi-Quellcode:
procedure TForm1.VolumeChange(Position: Integer);

Zitat:

Zitat von guinnes (Beitrag 1033373)
Warum eigentlich eine Function, wenn du kein Ergebnis zurücklieferst ?

Hier sollte sich Delphi ja sowieso beschweren, da das Funtionsergebnis (Result) nicht gesetzt wird und somit undefiniert/zufällig ist.

AlexII 4. Jul 2010 11:30

AW: Funktion richtig deklarieren
 
Zitat:

Zitat von mkinzler (Beitrag 1033386)
Zitat:

Bei mir kann ich aber gleicht sehen welches "if" zur welchem "begin" gehört.
Aber auf die Schnelle nicht mehr, welches
Delphi-Quellcode:
end
zu welchem
Delphi-Quellcode:
begin
, was ich als wichtiger erachte

Na doch, bei mir kann man das gerade sehr gut.
Jaaa ich hab da in der Schule so gelernt, ne andere Struktur verwirrt mich nur.

AlexII 4. Jul 2010 11:32

AW: Funktion richtig deklarieren
 
Also hab schon ne Procedure daraus gemacht.

Code:
procedure TForm1.VolumeChange(Position: Integer);
Und das ich diese in der private deklariert habe, ist das ok? Oder lieber public?

Matze 4. Jul 2010 11:37

AW: Funktion richtig deklarieren
 
Wenn du sie nicht "public" braucht, dann gehört sie da auch nicht hin, wieso auch ...

Edit: Was, du hast diese Formatierung in der Schule gelernt?! :shock:

Ich finde es so o.ä. deutlich angenehmer. Bei vielen Verzweigungen geht so der Code nicht "auseinander":
Delphi-Quellcode:
procedure TForm1.VolumeChange(Position: Integer);
begin
  if Position = 0 then
  begin
    VolumeLow.Visible := false;
    VolumeMedium.Visible := false;
    VolumeHigh.Visible := false;
    VolumeMuted.Visible := true;
  end
  else if (Position > 0) and (Position <= 33) then
  begin
    VolumeLow.Visible := true;
    VolumeMedium.Visible := false;
    VolumeHigh.Visible := false;
    VolumeMuted.Visible := false;
  end
  else if (Position > 33) and (Position <= 66) then
  begin
    VolumeLow.Visible := false;
    VolumeMedium.Visible := true;
    VolumeHigh.Visible := false;
    VolumeMuted.Visible := false;
  end
  else
  begin
    VolumeLow.Visible := false;
    VolumeMedium.Visible := false;
    VolumeHigh.Visible := true;
    VolumeMuted.Visible := false;
  end;

  BASS_ChannelSetAttribute(chan, BASS_ATTRIB_VOL, Position / 100);
end;
Aber gut, die Formatierungsdiskussion müssen wir hier nicht wiederholen. Sonderlich gut ist die deines Lehrers jedoch nicht.
Solltest du an einen zukünftigen Arbeitgeber Beispielcode schicken, der so formatiert ist wie deiner, wirst du vermutlich keine allzu guten Chancen haben, genommen zu werden.

Folgende Verzweigung wäre übrigens auch denkbar, wenn die Werte immer positiv sind (im Prinzip sind die Verzweigungen auch nicht nötig, nur ob boolsche Verknüpfungen übersichtlicher sind, ist die andere Frage). Schneller ist's vermutlich wie du's hast.
Delphi-Quellcode:
if Position = 0 then
  // ...
else if Position <= 33 then
  // ...
else if Position <= 66 then
  // ...
else
  // ...

mkinzler 4. Jul 2010 11:39

AW: Funktion richtig deklarieren
 
Zitat:

Zitat von AlexII (Beitrag 1033391)
Also hab schon ne Procedure daraus gemacht.

Code:
procedure TForm1.VolumeChange(Position: Integer);
Und das ich diese in der private deklariert habe, ist das ok? Oder lieber public?

Rede ich gegen eine Wand :wall:
Zitat:

BTW. Auch das neue Forum unterstützt den Delphi-Tag!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 Uhr.
Seite 2 von 4     12 34      

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