Announcement

Collapse
No announcement yet.

Canvas Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Canvas Problem

    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:

    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.
    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.
    Eins hab ich erkannt - ich bleibe immer Schüler, ein Leben lang

  • #2
    Rectangle(X1, Y1, X2, Y2);

    MfG

    Comment

    Working...
    X