Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Brauche Hilfe bei einem Rechner Programm ( erledigt ) (https://www.delphipraxis.net/122544-brauche-hilfe-bei-einem-rechner-programm-erledigt.html)

Teladorn 17. Okt 2008 23:18


Brauche Hilfe bei einem Rechner Programm ( erledigt )
 
Hallo liebes Forum.

Falls das hier das falsche Forum ist Entschuldige ich mich schonmal, wusste nicht wo ich mein Problem sonst Posten sollte :(.
Nunja..
Habe vor kurzem Angefangen mich mit Delphi zu Befassen. Wollte nun ein Rechner Programmieren nach diesem Tutorial: Tutorial.
Nun ich bin bis zum Schritt 6 gekommen ( Vergleich des Quelltextes ).
Da mein Code sich etwas von diesem Unterscheidet dachte ich mir das ich mal bei Euch nach Hilfe Suche.

Mein Code sieht wie folgt aus:

Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Berechnen: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Anlage: TLabel;
    Ergebnis: TLabel;
    Label1: TLabel;
    Zinsen: TLabel;
    Laufzeit: TLabel;
    procedure BerechnenClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.BerechnenClick(Sender: TObject);
var
   anlage, zinsen, laufzeit, ergebnis: integer;
begin
   anlage := StrToInt(Edit1.Text);
   zinsen := StrToInt(Edit2.Text);
   laufzeit := StrToInt(Edit3.Text);
   ergebnis := Anlage * Zinsen / 100 + Anlage * Zinsen / 100 * Laufzeit;
   Label1.Caption := IntToStr(ergebnis);
end;

initialization
  {$I unit1.lrs}

end.
Nun ist allerdings der Fehler wenn ich den Rechner Testen will dieser:
Zitat:

unit1.pas(41,4) Error: Duplicate identifier "Anlage"
unit1.pas(41,4) Hint: Identifier already defined in unit1.pas at line 20
unit1.pas(41,12) Error: Duplicate identifier "Zinsen"
unit1.pas(41,12) Hint: Identifier already defined in unit1.pas at line 23
unit1.pas(41,20) Error: Duplicate identifier "Laufzeit"
unit1.pas(41,20) Hint: Identifier already defined in unit1.pas at line 24
unit1.pas(41,30) Error: Duplicate identifier "Ergebnis"
unit1.pas(41,30) Hint: Identifier already defined in unit1.pas at line 21
unit1.pas(46,38) Error: Incompatible types: got "Extended" expected "LongInt"
unit1.pas(55) Fatal: There were 5 errors compiling module, stopping
Hoffe ihr könnt mir Helfen.
Achja, benutze zum Programmieren das Programm Lazarus falls das Helfen könnte.
Gruß Sascha

Dunkel 17. Okt 2008 23:29

Re: Anfäger braucht Hilfe
 
Hallo und willkommen im Forum!

Zuerst mal: Dein Thread-Titel ist absolut nichtsaussagend. Lass Dir mal was besseres und passenderes einfallen! :cyclops:

Zu Deinem Problem:
Du nennst Deine lokalen Variablen genau wie die VCL-Elemente (TLabel). Das ist nicht gut. Lass Dir für das Eine oder das Andere einen anderen, sinnigen Namen einfallen; und sei es nur, dass Du Deinen lokalen Variablen einen Unterstrich (_) voransetzt.

TF6IF 17. Okt 2008 23:30

Re: Anfäger braucht Hilfe
 
hello

dein problem ist eigentlich einfach erklaert. deine LABEL und VARIABLEN nutzen den gleichen namen.

das funktioniert dann natuerlich nicht.

mr_emre_d 18. Okt 2008 00:18

Re: Anfäger braucht Hilfe
 
Hier auch ein herzliches Wilkommen meinerseits :)

Falls dir nicht weitergeholfen wurde / bzw du es nicht so ganz verstanden hast:

Lösche mal als erstens alle Labels aus der Form !
Anschließend fügst Du wieder soviele du brauchst ein !
Anstelle die Eigenschaft "Name" zu ändern, änderst du "Caption" im ObjectInspector in der IDE !

Somit würde das wie folgt aussehen:
Code:
Edit1:TEdit;
Edit2:TEdit; ...
Und bei der BerechneClick Rrocedure müsstest du dann nichts mehr ändern :)

PS: Bitte verpass dem Thread eine anständigen Titel !

MfG und viel Spaß noch mit Delphi ;)

Dunkel 18. Okt 2008 00:21

Re: Anfäger braucht Hilfe
 
Zitat:

Zitat von mr_emre_d
Lösche mal als erstens alle Labels aus der Form !

Why?! :gruebel:
Umbenennen reicht doch!

Edit:
ich benutze für VCL-Elemente ganz gerne sog. Prefixe; "sterilisierte" Vornamen vor der eigentlichen Bezeichnung. Ein TLabel würde ich z.B. "lblEinLabel" nennen, ein TButton "btnEinButton" usw.. Eigne Dir mal ähnliches an, dann kann sowas nicht mehr passieren, außerdem sind VCL-Variablen strikt von eigenen getrennt und anhand ihrer Prefixe auf einem Blick erkennbar.

Teladorn 18. Okt 2008 00:38

Re: Anfäger braucht Hilfe
 
Hey, danke für eure schnellen Antworten ;D.
Fehler sind nun alle weg und Programm Funktioniert so wie gewollt :D.
Würde gerne das Prog als Anhang hier reinstellen aber mit 11mb doch was zu Groß ;D
Danke euch allen ;)

Dunkel 18. Okt 2008 00:41

Re: Anfäger braucht Hilfe
 
11MB für ein "Anfängerprogramm" (Da gehe ich jetzt einfach mal, ganz dreist, von aus)?! Whoooo! :shock:

Schön, dass es jetzt funktioniert! :-D

mr_emre_d 18. Okt 2008 03:46

Re: Brauche Hilfe bei einem Rechner Programm ( erledigt )
 
Ich nehme an, du programmierst mit Lazarus.

Schau dir Folgendes einmal an:
Exegröße ändern ( 17 )

MfG

Teladorn 19. Okt 2008 16:47

Re: Brauche Hilfe bei einem Rechner Programm ( erledigt )
 
Zitat:

Zitat von mr_emre_d
Ich nehme an, du programmierst mit Lazarus.

Schau dir Folgendes einmal an:
Exegröße ändern ( 17 )

MfG

Richtig ;) und danke, werds mir mal durchlesen :D.


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