AGB  ·  Datenschutz  ·  Impressum  







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

Befehl 'round' macht schlapp

Ein Thema von joelnbp · begonnen am 22. Jan 2014 · letzter Beitrag vom 24. Feb 2014
Antwort Antwort
Seite 2 von 2     12   
michaelthuma
(Gast)

n/a Beiträge
 
#11

AW: Befehl 'round' macht schlapp

  Alt 24. Feb 2014, 21:46
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.

Hallo Luki206 und co

Da ich einer der wenigen bin, den das flache Windows 8+ Design sehr gefällt, habe ich es mit meinen wenigen Kenntnissen versucht, so gut wie möglich um zu setzen.

Es sind ganz normale Panels, die die Eigentschaft BevelOuter = bvNone haben. Dann sind sie flach und mit den Farben sollte ja alles klar sein.
Natürlich noch nen bisschen 'hover' mit reingepackt, und natürlich bekannte Button Funktionen wie z.B. enabled ergänzt (auf die einfachste Weise wie es geht; versteht sich ) .

Aber verändern die Skin-Packs nur das Aussehen von Delphi, oder nur das Anwendungs-Design? Und ist es dann auch auf einen PC ohne Skin-Pack zu sehen?
Und ist das auch mit Lazarus möglich?

Liebe Grüße, Joel
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: Befehl 'round' macht schlapp

  Alt 24. Feb 2014, 22:53
Um Punktezahlen in einen Schulnoten-System anzeigen zu lassen, fand ich eine Formel:
  • (Erreichte Punktzahl * 5) / Gesatmmtpunktzahl - 6
Das Minus sollte man sich weg denken - ich habe es einfach mal duch (-a)-(-b) verschwinden lassen ;D.
Mathe ist nicht deine Stärke
Code:
[Schulnote] = 6 - [Erreichte Punktzahl] / [Gesamtpunktzahl] * 5
Wenn du schon so eine Formel hast, warum schreibst du die dann nicht genau so in Delphi hin?
Delphi-Quellcode:
function GetSchulnote( ErreichtePunktzahl, GesamtPunktzahl : Integer ) : Integer;
begin
  Result := 6 - Round( ErreichtePunktzahl / GesamtPunktzahl * 5 );
end;
In deinem Programm integriert dann
Delphi-Quellcode:
// panel22 - Schulnote
// panel5 - Erreichte Punktzahl
// panel6 - Gesamt Punktzahl
panel22.caption:=IntToStr( GetSchulnote( StrToInt( panel5.caption ), StrToInt( panel6.caption ) ) );
und wenn du den Komponenten passende Namen gibst
Delphi-Quellcode:
// Irgendwie keine Kommentare nötig ... toll
Schulnote_Panel.Caption :=
  IntToStr(
    GetSchulnote(
      StrToInt( ErreichtePunktzahl_Panel.Caption ),
      StrToInt( GesamtPunktzahl_Panel.Caption ) ) );
und wenn du deiner Form ein paar Properties spendierst
Delphi-Quellcode:
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;
dann brauchst du nur noch
Delphi-Quellcode:
// das ist ja lesbar
Schulnote := GetSchulnote( ErreichtePunktzahl, GesamtPunktzahl );
schreiben und fertig.

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:
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;
und bist schon fertig
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

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 01:00 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