Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prozent ausrechnen und Wert zuweisen (https://www.delphipraxis.net/12129-prozent-ausrechnen-und-wert-zuweisen.html)

sharkx 21. Nov 2003 08:37


Prozent ausrechnen und Wert zuweisen
 
Hallo ...

Der Titel mag sich ein wenig blöd anhören, aber das ist tatsächlich das Problem.

Wie ich Prozent ausrechne weiss ich, aber wie geb ich einem bestimmten Prozent-Wert einen anderen Wert?

Zur verdeutlichung:

Ich erstelle ja nach Prozentzahl ein Directory.

Code:
0%
[##########] -  0% Complete - [AA]

50%
[#####-----] -  50% Complete - [AA]

100%
[AA] - ( 100% - COMPLETE ) - [AA]
Mein Problem liegt also an dem Statusbalken. Wie realisiere ich diesen? Ich möchte nicht für jede prozentzahl einen Statusbalken schreiben, sondern diesen selbst errechnen lassen.

Sharky 21. Nov 2003 08:43

Re: Prozent ausrechnen und Wert zuweisen
 
Hai sharkx,

kannst Du dafür nicht einfach eine ProgressBar verwenden? Wenn Du dort Min auf 0 und Max auf 100 setzt wird diese ja Automatisch das anzeigen was Du möchtest.

sharkx 21. Nov 2003 08:46

Re: Prozent ausrechnen und Wert zuweisen
 
hmm, ist aber eine Consolenanwenung und nen Progressbar kann ich als VCL auch nicht in ein Directory zaubern?! :/

himitsu 21. Nov 2003 08:52

Re: Prozent ausrechnen und Wert zuweisen
 
Ist die Units StrUtils vorhanden, oder soll es auch ohne sie geh'n?

sharkx 21. Nov 2003 09:04

Re: Prozent ausrechnen und Wert zuweisen
 
vorhanden ist sie nicht, aber geht mit :)

Minz 21. Nov 2003 09:13

Re: Prozent ausrechnen und Wert zuweisen
 
Hi,

Delphi-Quellcode:
function EyMannGibStatus(maxLength,anz:integer):string;
var i,i2:integer;
begin
  result:='[';
  for i:=1 to anz do
    result:=result+'#';
  for i2:=i to maxLength do
    result:=result+'-';
  result:=result+']';
end;

anzahlkreuze:=StatusBalkenEinheiten*prozent;
Balken:=EyManGibStatus(StatusBalkenEinheiten,anzahlkreuze);
so in etwa?

himitsu 21. Nov 2003 09:14

Re: Prozent ausrechnen und Wert zuweisen
 
Delphi-Quellcode:
Function Status(Wert: Byte): String;
  Var I: Integer;

  Begin
    If Wert >= 100 Then
      Result := '[AA] - ( 100% - COMPLETE ) - [AA]'
    Else Begin
      Result := '[';
      For I := 1 to 10 - (Wert div 10) do
        Result := Result + '#';
      While I <= 10 do Begin
        Inc(I); {I := I + 1;}
        Result := Result + '-';
      End;
      Result := Result + '] - ' + IntToStr(Wert) + '% Complete - [AA]';
    End;
  End;


Delphi-Quellcode:
Uses StrUtils;

Function Status(Wert: Byte): String;
  Begin
    If Wert >= 100 Then
      Result := '[AA] - ( 100% - COMPLETE ) - [AA]'
    Else
      Result := '[' + DupeString('#', 10 - (Wert div 10)) + DupeString('-', Wert div 10) +
        '] - ' + IntToStr(Wert) + '% Complete - [AA]';
  End;

Luckie 21. Nov 2003 09:17

Re: Prozent ausrechnen und Wert zuweisen
 
Zitat:

Zitat von sharkx
nen Progressbar kann ich als VCL auch nicht in ein Directory zaubern?! :/

:wiejetzt:
Ein Directory (Ordner / Verzeichnis) ist eine logische Ordnungseinheit / -struktur auf einem Datenträger. Eine Progressbar ist im Sinne von Windows auch nur ein Fenster - in der Regel auf einem Hauptfenster plaziert. Könntest du mir mal unter diesen Vorraussetzungen die Bedeutung deines Satzes erklären? Ich verstehe ihn nämlich nicht.

Luckie 21. Nov 2003 09:19

Re: Prozent ausrechnen und Wert zuweisen
 
Zitat:

Zitat von himitsu
Delphi-Quellcode:
Uses System; { Unit System wird nur für Inc(I); verwendet, }
              { kann aber auch entfallen                   }

Und wird automatisch vom Compiler eingebunden. :zwinker:

sharkx 21. Nov 2003 09:22

Re: Prozent ausrechnen und Wert zuweisen
 
Danke Danke ...

ich hab mich für himitsu´s erste Lösung entschieden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 Uhr.
Seite 1 von 2  1 2      

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