AGB  ·  Datenschutz  ·  Impressum  







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

wiederkehrende funktion

Ein Thema von Privateer3000 · begonnen am 19. Jun 2002 · letzter Beitrag vom 19. Jun 2002
Antwort Antwort
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

wiederkehrende funktion

  Alt 19. Jun 2002, 21:13
Hi naochmal
muss gleich noch einen hiterherschiessen

wie kann man wie im folgendene Code diese case schleife so verpacken das sie nur einmal geschrieben werden muss und bei "Bedarf" aufgerufen werden kann??

Code:
case zahl of
      15..24: LabelStufe.Caption := 'Das bedeutet Stufe 1';
      25..32: LabelStufe.Caption := 'Das bedeutet Stufe 2';
      33..37: LabelStufe.Caption := 'Das bedeutet Stufe 3';
      38..42: LabelStufe.Caption := 'Das bedeutet Stufe 4';
      43..50: LabelStufe.Caption := 'Das bedeutet Stufe 5';
      51..60: LabelStufe.Caption := 'Das bedeutet Stufe 6';
      end;
zahl ist, logo, eine integer

nun will ich nicht 12-16 mal diese Schleife in den Quellcode schreiben...
Ich hab die OH hin und hergewälzt, blicke aber bei function einfach nicht durch..

Hoffe auf Hilfe
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 19. Jun 2002, 21:19
Hallo Privateer3000,

Code:
function TForm1.GetLevel(zahl: Integer): String;
begin
  case zahl of
      15..24: Result := 'Das bedeutet Stufe 1';
      25..32: Result := 'Das bedeutet Stufe 2';
      33..37: Result := 'Das bedeutet Stufe 3';
      38..42: Result := 'Das bedeutet Stufe 4';
      43..50: Result := 'Das bedeutet Stufe 5';
      51..60: Result := 'Das bedeutet Stufe 6';
      end;
end;
Der Aufruf lautet dann:
Code:
    LabelLevel.Caption := GetLevel(zahl);
Natürlich könntest du auch einen Integer zurückgeben, der nur den Level zurückgibt.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#3
  Alt 19. Jun 2002, 21:19
Du könntest beispielsweise eine Funktion daraus machen, welche einen String zurückliefert:
Code:
Function Auswertung( zahl : Integer ) : String;
Begin
  case zahl of
      15..24: Result := 'Das bedeutet Stufe 1';
      25..32: Result := 'Das bedeutet Stufe 2';
      33..37: Result := 'Das bedeutet Stufe 3';
      38..42: Result := 'Das bedeutet Stufe 4';
      43..50: Result := 'Das bedeutet Stufe 5';
      51..60: Result := 'Das bedeutet Stufe 6';
      else
        Result:= 'unbekannte Stufe bei Wert '+IntToStr(zahl);
      end;
End;
Aufruf über:
Code:
LabelStufe.Caption:= Auswertung( Zahl );
War es das?

/edit: 2 Leute - 1 Gedanke

Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#4
  Alt 19. Jun 2002, 22:11
Ihr seid einfach die grössten..genauso isses...
sollte mir vielleicht doch mal ein Buch holen...
mit der OH kommt man eben nie weit.
Oder ich muss Euch nerven

Dankeschöööööön
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5
  Alt 19. Jun 2002, 22:13
Zitat von Privateer3000:
Oder ich muss Euch nerven
Du nervst hier doch niemanden. Ich denke das ich für alle sprechen kann. Wenn du jemanden nerven würdest, dann wäre derjenige nicht hier. Dazu sind Foren doch da.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#6
  Alt 19. Jun 2002, 22:16
Muss man :
Code:
Function Auswertung( zahl : Integer ) : String;
noch wo anders hinschreiben ausser irgendwo im Text?
In der class oder public oder privat??
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#7
  Alt 19. Jun 2002, 22:24
@DanielB:
Das hast Du schön formuliert!


@Privateer:
Du kannst diese Funktion so im Quellcode stehen lassen; ist dann halt keine Methode - also kein Bestandteil einer Klasse. Muss sie ja auch nicht zwangsläufig sein. Du kannst diese Funktion als Teil einer Klasse deklarieren. Dann hast Du grob gesagt folgende Möglichkeiten:
Code:
  class myClass = class(TObject)
  private
    // Hier, wenn Du sie nur innerhalb dieser Klasse benutzen willst
    Function Auswertung( Zeit : Integer ) : String;
  public
    // oder hier, wenn Du sie global benutzen möchtest
    Function Auswertung( Zeit : Integer ) : String;
  end;

  // In beiden Fällen musst die Methode um den Klassennamen erweitern:
  Function myClasss.Auswertung( zeit : Integer ) : String
  Begin
    ...
  End;
Hier ist die OH von Delphi (6) wirklich nicht schlecht. Schau Dir mal die Hilfe zu den Begriffen "private", "public", "published" an. Ich denke, dass das hilft, Klarheit zu schaffen.


Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#8
  Alt 19. Jun 2002, 22:30
Prima, Danke
ja da hilft die OH weiter, aber nicht bei "function" wenn man nichts damit anfangen..

@Daniel_B
Danke für das Verständiss

Ja klar,sind Foren dazu da.
Kennen tue ich das ja noch aus diversen PHP-Board...
da "nerven" mich heut noch manche , aber per email...weil ich kaum noch poste
Es ist natürlich kein nerven.Ich finde es auch Klasse wenn man helfen kann

in diesem Sinne
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:29 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