AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Funktion richtig deklarieren

Ein Thema von AlexII · begonnen am 4. Jul 2010 · letzter Beitrag vom 4. Jul 2010
Antwort Antwort
Seite 2 von 4     12 34      
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#11

AW: Komme mit einer Funktion nicht weiter

  Alt 4. Jul 2010, 11:18
Wolltest du nicht VolumeChange() statt .VolumeBarChange() aufrufen?
Ok danke, war mein Fehler.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#12

AW: Komme mit einer Funktion nicht weiter

  Alt 4. Jul 2010, 11:21
Also für mich ist es besser so, voll Übersichtlich.
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
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Komme mit einer Funktion nicht weiter

  Alt 4. Jul 2010, 11:25
ü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.

Bei "case" kann ich doch den Wertebereich zwischen zwei Zahlen so abfragen: "0-33:", oder?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Funktion richtig deklarieren

  Alt 4. Jul 2010, 11:27
Zitat:
Bei mir kann ich aber gleicht sehen welches "if" zur welchem "begin" gehört.
Aber auf die Schnelle nicht mehr, welches end zu welchem begin , was ich als wichtiger erachte
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#15

AW: Komme mit einer Funktion nicht weiter

  Alt 4. Jul 2010, 11:29
Bei "case" kann ich doch den Wertebereich zwischen zwei Zahlen so abfragen: "0-33:", oder?
Nein. Das geht mit 0..33:
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Komme mit einer Funktion nicht weiter

  Alt 4. Jul 2010, 11:30
Da du keinen Wert in der Funktion zurück gibst (kein "Result := ..."), kannst du eine Prozedur daraus machen:

procedure TForm1.VolumeChange(Position: Integer);
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#17

AW: Funktion richtig deklarieren

  Alt 4. Jul 2010, 11:30
Zitat:
Bei mir kann ich aber gleicht sehen welches "if" zur welchem "begin" gehört.
Aber auf die Schnelle nicht mehr, welches end zu welchem 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.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#18

AW: Funktion richtig deklarieren

  Alt 4. Jul 2010, 11:32
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?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#19

AW: Funktion richtig deklarieren

  Alt 4. Jul 2010, 11:37
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?!

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
  // ...

Geändert von Matze ( 4. Jul 2010 um 11:44 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Funktion richtig deklarieren

  Alt 4. Jul 2010, 11:39
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
Zitat:
BTW. Auch das neue Forum unterstützt den Delphi-Tag!
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 19:10 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