Hi
ich habe ein Problem mit einem "Rechteckrechner".
Dies ist zwar nicht sehr Anspruchsvoll, aber in der Schule beginnen wir gerade erst mit Delphi - ich bin zwar persönlich schon viel weiter als die anderen, muss aber trotzdem solche Dinge mitmachen (eine lange Programmiererfahrung in anderen Sprachen hilft mir).
Das Programm soll leisten/leistet:
Den Flächeninhalt und den Umfang des Rechtecks ausrechnen und ausgeben. Außerdem soll das Rechteck dann noch mit einer virtuellen Einheit (Einheit = Einheitvalue * 1 pxl -> also: bei Einheitvalue 10 wäre die virtuelle Einheit für die Zeichnung 10pxl) Hört sich kompliziert an, ist es aber nicht - sorry wenn ich mich falsch ausgedrückt hab
Nun funktioniert das mit dem Zeichnen aber nicht.
Hiert ist mein Quellcode:
Bitte helft mir.
Das komische an der ganzen Sache ist, das es schon einmal geklappt hat, aber mit der unveränderten Prozedur Rectangle auf einmal nicht mehr klappt.
MFG
Fab
PS: Dem Quellcode ist die Berechnung meiner virtuellen Einheit nicht direkt zu entnehmen, sie entspricht jedoch meinen Angaben von oben.
PPS: Hoffe das reicht an Infos für euch. Wenn ihr mehr braucht einfach nur melden.
ich habe ein Problem mit einem "Rechteckrechner".
Dies ist zwar nicht sehr Anspruchsvoll, aber in der Schule beginnen wir gerade erst mit Delphi - ich bin zwar persönlich schon viel weiter als die anderen, muss aber trotzdem solche Dinge mitmachen (eine lange Programmiererfahrung in anderen Sprachen hilft mir).
Das Programm soll leisten/leistet:
Den Flächeninhalt und den Umfang des Rechtecks ausrechnen und ausgeben. Außerdem soll das Rechteck dann noch mit einer virtuellen Einheit (Einheit = Einheitvalue * 1 pxl -> also: bei Einheitvalue 10 wäre die virtuelle Einheit für die Zeichnung 10pxl) Hört sich kompliziert an, ist es aber nicht - sorry wenn ich mich falsch ausgedrückt hab
Nun funktioniert das mit dem Zeichnen aber nicht.
Hiert ist mein Quellcode:
Code:
unit Rechteck_Unit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Panel1: TPanel; Label1: TLabel; Label2: TLabel; Ed_Hoehe: TEdit; Ed_Breite: TEdit; Btn_Berechnen: TButton; Btn_Ende: TButton; Im_Zeichnung: TImage; GroupBox1: TGroupBox; Label3: TLabel; Label4: TLabel; Ed_Flaeche: TEdit; Ed_Umfang: TEdit; Label5: TLabel; Ed_Einheit: TEdit; Label6: TLabel; procedure Btn_EndeClick(Sender: TObject); procedure Btn_BerechnenClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Hoehe, Breite, Flaeche, Umfang: Real; Einheit: Integer; x1, y1, x2, y2: Integer; implementation {$R *.DFM} procedure TForm1.Btn_EndeClick(Sender: TObject); begin Close; end; procedure TForm1.Btn_BerechnenClick(Sender: TObject); begin Hoehe := StrToFloat(Ed_Hoehe.Text); Breite := StrToFloat(Ed_Breite.Text); Flaeche := Hoehe * Breite; Umfang := ((2* Hoehe) + (2* Breite)); Ed_Flaeche.Text := FloatToStr(Flaeche); Ed_Umfang.Text := FloatToStr(Umfang); Einheit := StrToInt(Ed_Einheit.Text); //Startposition für die Zeichnung x1 := 100; y1 := 100; //Koordinaten für das Rechteck berechnen x2 := x1 + (Round(Breite) * Einheit); y2 := y1 + (Round(Hoehe) * Einheit); //Rechteck zeichnen with Im_Zeichnung.Canvas do begin Pen.Color := clRed; Brush.Color := clRed; Rectangle(x1, x2, x2, y2); end; end; end.
Das komische an der ganzen Sache ist, das es schon einmal geklappt hat, aber mit der unveränderten Prozedur Rectangle auf einmal nicht mehr klappt.
MFG
Fab
PS: Dem Quellcode ist die Berechnung meiner virtuellen Einheit nicht direkt zu entnehmen, sie entspricht jedoch meinen Angaben von oben.
PPS: Hoffe das reicht an Infos für euch. Wenn ihr mehr braucht einfach nur melden.
Comment