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/)
-   -   Zwei Labels funktionieren nicht (https://www.delphipraxis.net/124651-zwei-labels-funktionieren-nicht.html)

Pro-Grammierer 22. Nov 2008 12:26


Zwei Labels funktionieren nicht
 
Hier die Probleme:

Ich hab zwei Labels, die eig. nach einem OnClick Ereignis ansteigen sollen, bzw. ihre Caption ändern sollen.

Das eine Label legt den Preis fest, der parallel zum Liter-Label ansteigt (das Liter Label steigt komischerweise an), das andere ist einfach nur eine Anzeige, die der ausgewählte Treibstoff pro Liter kostet (sie ändert sich nicht).

Allerdings steigt das Label für den Preis nicht an und das Label, dass anzeigen soll, wv der ausgewählte Treibstoff pro Liter kosten soll, nimmt ebenfalls nichts die gewünschte Zahl an.

(hier die beiden Quelltexte für die Label):
(1. Label, dass parallel zum Liter ansteigen soll)

Delphi-Quellcode:
procedure TForm1.GroupBox3Click(Sender: TObject);

begin
if Sender=BitBtn1 then
Preis:=Preis-0.1
else if Sender=BitBtn2 then
Preis:=Preis-0.2
else if Sender=BitBtn3 then
Preis:=Preis-0.5
else if Sender=BitBtn4 then
Preis:=Preis-1
else if Sender=BitBtn5 then
Preis:=Preis-2
else if Sender=BitBtn6 then
Preis:=Preis-5
else if Sender=BitBtn7 then
Preis:=Preis-10
else if Sender=BitBtn8 then
Preis:=Preis-20
else if Sender=BitBtn9 then
Preis:=Preis-50;
lbPreis.Caption:=FloatToStr(Preis);
Groupbox2.Enabled:=false;
end;

(hier das Label, das einfach nur den Treibstoffpreis pro Liter festlegen soll)
procedure TForm1.GroupBox1Click(Sender: TObject);
begin
if Sender=Button1 then
lPreis:=1.172
else if Sender=Button2 then
lPreis:=1.165
else if Sender=Button3 then
lPreis:=1.256
else if Sender=Button4 then
lPreis:=1.150;
GroupBox1.Enabled:=false;
GroupBox2.Enabled:=true;
lblpreis1.Caption:=FloatToStr(lpreis);



end;
So hab ich das geschrieben, warum funktioniert das nicht und wo liegt der Fehler? Wenn ihr nicht folgen könnt, schick ich euch gerne das Design und den vollständigen Quelltext und ihr probiert es aus.

Es wurde geschrieben, dass der Sender die Groupbox sein soll - wie würde das dann aussehen?!

[edit=MrSpock]Delphi Code Tags eingefügt. Mfg, MrSpock[/edit]

freak4fun 22. Nov 2008 12:30

Re: Zwei Labels funktionieren nicht
 
Bitte setze deinen Quelltext in Delphi-Tags und formatiere ihn anständig. :dp:

Noedel 22. Nov 2008 12:30

Re: Zwei Labels funktionieren nicht
 
häng mal bitte den rest an
ich seh da grad (fast) nix drin

Pro-Grammierer 22. Nov 2008 12:34

Re: Zwei Labels funktionieren nicht
 
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    Label7: TLabel;
    Label8: TLabel;
    btWechsel: TButton;
    lbWechsel: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    lbLiter: TLabel;
    lbPreis: TLabel;
    Label13: TLabel;
    lblPreis1: TLabel;
    TDauer: TTimer;
    btTanken: TButton;
    procedure btTankenClick(Sender: TObject);
    procedure GroupBox1Click(Sender: TObject);
    procedure GroupBox3Click(Sender: TObject);
    procedure btWechselClick(Sender: TObject);
    procedure TDauerTimer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
     var Liter, lpreis, Preis : real;

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btTankenClick(Sender: TObject);

begin
if btTanken.Caption ='Tanken' then
   begin
   btTanken.Caption:='Stop';
   TDauer.Enabled:=true;
   end
else
   begin
   btTanken.Caption:='Tanken';
   TDauer.Enabled:=false;
   lbPreis.Caption:=FloatToStr(liter*lpreis);
   Label11.Visible:=true;
   Label10.Visible:=true;
   end;

   end;

procedure TForm1.btWechselClick(Sender: TObject);
begin
   if Preis<0 then
      Preis:=0
   else if Liter>0 then
      Liter:=0
   else if Preis>0 then
      btWechsel.Enabled:=false
   else if Preis>=0 then
      btWechsel.Enabled:=false;
         
     

   lbWechsel.Visible:=false;
   lbLiter.Caption:=FloatToStr(Liter);
   lbPreis.Caption:=FloatToStr(Preis);
   GroupBox1.Enabled:=true;
   Label10.Visible:=true;
   Label11.Visible:=true;

end;

procedure TForm1.GroupBox1Click(Sender: TObject);
begin
   if Sender=Button1 then
      lPreis:=1.172
   else if Sender=Button2 then
      lPreis:=1.165
   else if Sender=Button3 then
      lPreis:=1.256
   else if Sender=Button4 then
      lPreis:=1.150;
   GroupBox1.Enabled:=false;
   GroupBox2.Enabled:=true;
   lblpreis1.Caption:=FloatToStr(lpreis);


   
end;

procedure TForm1.GroupBox3Click(Sender: TObject);

begin
    if Sender=BitBtn1 then
       Preis:=Preis-0.1
    else if Sender=BitBtn2 then
       Preis:=Preis-0.2
    else if Sender=BitBtn3 then
       Preis:=Preis-0.5
    else if Sender=BitBtn4 then
       Preis:=Preis-1
    else if Sender=BitBtn5 then
       Preis:=Preis-2
    else if Sender=BitBtn6 then
       Preis:=Preis-5
    else if Sender=BitBtn7 then
       Preis:=Preis-10
    else if Sender=BitBtn8 then
       Preis:=Preis-20
    else if Sender=BitBtn9 then
       Preis:=Preis-50;
    lbPreis.Caption:=FloatToStr(Preis);
    Groupbox2.Enabled:=false;

end;

procedure TForm1.TDauerTimer(Sender: TObject);

begin
    Liter:=Liter+1;
    lbLiter.Caption:=FloatToStr(Liter);
    Preis:=Liter*lpreis;
    lbPreis.Caption:=FloatToStr(Liter*Preis);
end;

end.

Das ist der komplette Code. Hoffe ihr könnt mir weiter helfen.

DeddyH 22. Nov 2008 12:36

Re: Zwei Labels funktionieren nicht
 
Bitte editiere den Post nochmal und setze den Quellcode in Delphi-Tags (
Delphi-Quellcode:
Quellcode
oder markieren und die Schaltfläche "Delphi-Code" benutzen), sonst wird sich niemand die Mühe machen wollen, das zu lesen ;)

Pro-Grammierer 22. Nov 2008 12:39

Re: Zwei Labels funktionieren nicht
 
Ah, hab mich schon gewundert wie das geht :D
Danke. Habs gemacht

DeddyH 22. Nov 2008 12:44

Re: Zwei Labels funktionieren nicht
 
Sieht eigentlich gut aus auf den ersten Blick (sofern vor dem Tanken btWechsel betätigt wird). Wird das Timer-Ereignis denn auch durchlaufen?

Noedel 22. Nov 2008 12:48

Re: Zwei Labels funktionieren nicht
 
ich seh da immer noch keinen fehler drin?! kannst du die ganzen delphi sachen mal in nem .rar verzeichnis mit hochladen?
dann kann man besser sehen, wo der schuh drückt

DeddyH 22. Nov 2008 12:53

Re: Zwei Labels funktionieren nicht
 
Lieber zip als rar, das ist verbreiteter ;). Ich vermute allerdings, dass einfach das Timer-Event im OI nicht mit dem Timer verbunden ist oder das Interval auf 0 steht oder sowas.

Andreas L. 22. Nov 2008 13:23

Re: Zwei Labels funktionieren nicht
 
Delphi-Quellcode:
Label1.Refresh;
aufrufen nach jeder Änderung der Caption-Eigenschaft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 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