AW: Befehl 'round' macht schlapp
Ist auch ok so. Die Skin-Packs kommen aus einer anderen Ecke. Sie erfüllen an sich einen ähnlichen Zweck wie ein CSS Datei. Das Aussehen soll angepasst werden. Coorporate Design (uniforme Look bspw. in Großkonzernen). Bei Utilities ist die Motivation Individualität. WinAmp.
Aber ich selbst habe zumeist einfach so wie du. Flache Panels damals eher Hellblau genommen mit einem großen Schriftzug und das Thema des Forms drübergeschrieben. Das hat die Anwendungen etwas aufgemuntert und pro Thema war die Farbe einstellbar. Das hat an sich damals genügt. An sich ist es vollkommen egal wie man zum Ziel kommt. Die Umsetzung ist kreativ. In Wahrheit kratzt es kaum jemanden, wenn er eine Software nur benutzen und nicht verkaufen will. Zitat:
|
AW: Befehl 'round' macht schlapp
Zitat:
Code:
Wenn du schon so eine Formel hast, warum schreibst du die dann nicht genau so in Delphi hin?
[Schulnote] = 6 - [Erreichte Punktzahl] / [Gesamtpunktzahl] * 5
Delphi-Quellcode:
In deinem Programm integriert dann
function GetSchulnote( ErreichtePunktzahl, GesamtPunktzahl : Integer ) : Integer;
begin Result := 6 - Round( ErreichtePunktzahl / GesamtPunktzahl * 5 ); end;
Delphi-Quellcode:
und wenn du den Komponenten passende Namen gibst
// panel22 - Schulnote
// panel5 - Erreichte Punktzahl // panel6 - Gesamt Punktzahl panel22.caption:=IntToStr( GetSchulnote( StrToInt( panel5.caption ), StrToInt( panel6.caption ) ) );
Delphi-Quellcode:
und wenn du deiner Form ein paar Properties spendierst
// Irgendwie keine Kommentare nötig ... toll
Schulnote_Panel.Caption := IntToStr( GetSchulnote( StrToInt( ErreichtePunktzahl_Panel.Caption ), StrToInt( GesamtPunktzahl_Panel.Caption ) ) );
Delphi-Quellcode:
dann brauchst du nur noch
type
TForm1 = class( TForm ) Schulnote_Panel : TPanel; ErreichtePunkte_Panel : TPanel; GesamtPunktzahl_Panel : TPanel; private FErreichtePunkte : Integer; FGesamtPunktzahl : Integer; FSchulnote : Integer; procedure SetErreichtePunkte( const Value : Integer ); procedure SetGesamtPunktzahl( const Value : Integer ); procedure SetSchulnote( const Value : Integer ); procedure ZeigeDaten; public property Schulnote : Integer read FSchulnote write SetSchulnote; property ErreichtePunkte : Integer read FErreichtePunkte write SetErreichtePunkte; property GesamtPunktzahl : Integer read FGesamtPunktzahl write SetGesamtPunktzahl; end; var Form1 : TForm1; implementation {$R *.dfm} { TForm1 } procedure TForm1.SetErreichtePunkte( const Value : Integer ); begin FErreichtePunkte := Value; ZeigeDaten; end; procedure TForm1.SetGesamtPunktzahl( const Value : Integer ); begin FGesamtPunktzahl := Value; ZeigeDaten; end; procedure TForm1.SetSchulnote( const Value : Integer ); begin FSchulnote := Value; ZeigeDaten; end; procedure TForm1.ZeigeDaten; begin ErreichtePunkte_Panel.Caption := IntToStr( ErreichtePunkte ); GesamtPunktzahl_Panel.Caption := IntToStr( GesamtPunktzahl ); if Schulnote < 1 then Schulnote_Panel.Caption := '' else Schulnote_Panel.Caption := IntToStr( Schulnote ); end;
Delphi-Quellcode:
schreiben und fertig.
// das ist ja lesbar
Schulnote := GetSchulnote( ErreichtePunktzahl, GesamtPunktzahl ); Wenn du dann feststellst, dass es für die Schulnote einen Schlüssel gibt (wieviel Prozent ergibt welche Note), dann änderst du einfach nur die Funktion zur Ermittlung der Schulnote.
Delphi-Quellcode:
und bist schon fertig ;)
function GetSchulnote_MeineIdee( ErreichtePunktzahl, GesamtPunktzahl : Integer ) : Integer;
begin Result := 6 - Round( ErreichtePunktzahl / GesamtPunktzahl * 5 ); end; function GetSchulnote_BerufsKolleg( Prozent : double ) : Integer; begin if Prozent < 30/100 then Result := 6 else if Prozent < 50/100 then Result := 5 else if Prozent < 67/100 then Result := 4 else if Prozent < 81/100 then Result := 3 else if Prozent < 92/100 then Result := 2 else Result := 1; end; function GetSchulnote( ErreichtePunktzahl, GesamtPunktzahl : Integer ) : Integer; begin Result := GetSchulnote_BerufsKolleg( ErreichtePunkte / GesamtPunktzahl ); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:11 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