AGB  ·  Datenschutz  ·  Impressum  







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

Progress Bar

Ein Thema von BWRobert · begonnen am 30. Sep 2011 · letzter Beitrag vom 30. Sep 2011
Antwort Antwort
BWRobert

Registriert seit: 30. Sep 2011
Ort: Geislingen/steige
4 Beiträge
 
Delphi 7 Personal
 
#1

Progress Bar

  Alt 30. Sep 2011, 16:48
Hallo,

Ich habe ehrlich lange gesucht aber nichts gefunden, was mir erklärt, wie ich eine Progressbar vernünftig in mein Programm einfüge
Ich habe seit 3 Wochen an meiner Schule Informatik und habe mal ein wenig herum probiert ... Da kam mir die Idee einen kleinen "Kalorienzäher" zu entwickeln
Hier der Code:
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    ProgressBar1: TProgressBar;
    EdFruehstueck: TEdit;
    EdMittag: TEdit;
    GroupBox1: TGroupBox;
    ChWeiblich: TCheckBox;
    ChMaennlich: TCheckBox;
    EdAbend: TEdit;
    BuRechne: TButton;
    BuEnde: TButton;
    PaEingenommen: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    PaTag: TPanel;
    EdEssen4: TEdit;
    EdEssen5: TEdit;
    EdEssen6: TEdit;
    EdEssen7: TEdit;
    EdEssen8: TEdit;
    procedure BuEndeClick(Sender: TObject);
    procedure BuRechneClick(Sender: TObject);
    procedure PaTagClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BuEndeClick(Sender: TObject);
begin
 close
end;

procedure TForm1.BuRechneClick(Sender: TObject);
Var Zahl1, Zahl2, zahl3, zahl4, Zahl5,Zahl6, Zahl7, Zahl8, Zahl9 : Real;
begin
 Zahl1:= StrToFloat (Edfruehstueck.Text);
 Zahl2:= StrToFloat (EdMittag.text);
 Zahl3:= StrToFloat (EdAbend.text);
 Zahl5:= StrToFloat (EdEssen4.text);
 Zahl6:= StrToFloat (EdEssen5.text);
 Zahl7:= StrToFloat (EdEssen6.text);
 Zahl8:= StrToFloat (EdEssen7.text);
 Zahl9:= StrToFloat (EdEssen8.text);
 Zahl4:= Zahl1+Zahl2+Zahl3+Zahl5+zahl6+zahl7+zahl8+zahl9;   //Kalorien werden zusammengerechnet
 PaEingenommen.Caption:= FloatToStr (Zahl4);
end;

procedure TForm1.PaTagClick(Sender: TObject);
Var Zahl7 : Real;
begin
 if ChMaennlich.Checked then Zahl7:=2400;
 if ChWeiblich.checked then Zahl7:=1900;
 PaTag.Caption:= FloatToStr (Zahl7);
end;

end.
Nun wollte ich eine Progressbar einfügen, die Anzeigt wie viel Kalorien man am Tag schon von den Benötigten gegessen hat. (Dient zur Veranschaulichung)
Und so nebenbei: Wisst ihr vielleicht warum ich erst auf das Pannel Tag klicken muss damit die Kalorienanzahl angezeigt wird? (Man muss ja erst Männlich oder Weiblich auswählen)

Vielen Dank schonmal!

Grüße Robert
Robert Mandrysch
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Progress Bar

  Alt 30. Sep 2011, 16:54
Die checkboxen haben ein Ereigniss onclick oder oncheck oder sowas. Das würde ich benutzen, um die Anzeige im Panel zu verändern. Dann muss man da garnicht mehr draufklicken.
Ralph
  Mit Zitat antworten Zitat
BWRobert

Registriert seit: 30. Sep 2011
Ort: Geislingen/steige
4 Beiträge
 
Delphi 7 Personal
 
#3

AW: Progress Bar

  Alt 30. Sep 2011, 16:59
Also müsste ich ChMaenlich.Checked zu ChMaenlich.clicked ändern ?

Sorry ich bin absoluter Neuling!
Robert Mandrysch
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Progress Bar

  Alt 30. Sep 2011, 17:12
Dann mach dir doch einmal ein paar Gedanken, was Dein Programm wann tun soll.

Bisher wird eine empfohlene Kalorienmenge in der patag.Caption angezeigt, je nachdem ob weiblich oder männlich,
und Du rechnest irgendwelche Eingaben aus Editfeldern zusammen und gibst diese Summe in PaEingenommen.Caption aus.

Wenn Du hiermit arbeiten willst, eine globale Variable für die Kalorienzahl wäre vllt. angebracht(?)

dann setzt Du das progressbar.Min auf 0 das Maximum auf die angestrebt Kalorienzahl und übergibst als Position die errechnete Kalorienzahl.
Nur wenn man sich in Richtung übergewicht bewegt, dann wird das nicht visualisiert.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Progress Bar

  Alt 30. Sep 2011, 17:23
ChMaenlich.Checked ist ja eine Eigenschaft, die du abfragst. Aber, du fragst sie erst ab, wenn auf das Panel geklickt wird in TForm1.PaTagClick(Sender: TObject).
PaTagClick ist dabei ein Ereigniss, also es passiert irgendwas und das löst dann die Ausführung des Codes in der entsprechenden Prozedur aus.

Auch checkboxen haben Ereignisse und du reagierst halt einfach auf das Ereignis, dass eine Checkbox geklickt wurde und änderst in dieser Ereignisroutine den Text auf dem Panel.

Du brauchst dann natürlich die Prozedur und das Ereignis PaTagClick nicht mehr.
Ralph
  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:45 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