AGB  ·  Datenschutz  ·  Impressum  







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

Graphen aus der canvas wieder löschen

Ein Thema von Blubbel · begonnen am 11. Okt 2011 · letzter Beitrag vom 11. Okt 2011
Antwort Antwort
Blubbel

Registriert seit: 6. Okt 2011
125 Beiträge
 
Delphi 2010 Professional
 
#1

AW: Graphen aus der canvas wieder löschen

  Alt 11. Okt 2011, 10:30
Der will Parameter?!

Naja, ist ja aber ein Bestandteil von Canvas oder nicht ?
  Mit Zitat antworten Zitat
Blubbel

Registriert seit: 6. Okt 2011
125 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Graphen aus der canvas wieder löschen

  Alt 11. Okt 2011, 10:34

PS:
Besser dem Lehrer sagen warum du es verwendest!
Ist doch nicht schlimm wenn man sich in Foren schlau macht. Oder?

gruss
Haste schon recht... ach, wenns ihm nicht gefällt, soll er doch mal mehr erlären
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: Graphen aus der canvas wieder löschen

  Alt 11. Okt 2011, 10:34
@Emil: Wenn doch sowieso ein Graph auf einen Canvas gezeichnet wird, dann ist es doch naheliegend, dass man dann wiederum mit den TCanvas-Methoden übermalt. Ich denke nicht, dass ein Lehrer damit Probleme haben sollte.

@Blubbel: Wer will wo Parameter?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Blubbel

Registriert seit: 6. Okt 2011
125 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Graphen aus der canvas wieder löschen

  Alt 11. Okt 2011, 10:36
Delphi-Quellcode:
procedure TForm1.btn_neuClick(Sender: TObject);
begin
  Image1.Canvas.FillRect;//Dort will der Compiler Parameter...
  FormCreate(Sender);
  begin
    edtEingabe.Text:='';
    edt_Bx.Text:='';
    edt_C.Text:='';
    edtFx.Text:='';
    edt_X.Text:='';
    edt_B.Text:='';
    edt_Cx.Text:='';
  end;
end;
Diese Meldung gibt er mir:

Zitat:
[Pascal Fehler] main.pas(79): E2035 Nicht genügend wirkliche Parameter
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#5

AW: Graphen aus der canvas wieder löschen

  Alt 11. Okt 2011, 10:38
Ja, Du musst zunächst das zu füllende Rechteck definieren: Delphi-Referenz durchsuchenTCanvas.FillRect. Das dürfte ja dem umgebenden Rechteck der gezeichneten Grafik entsprechen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Blubbel

Registriert seit: 6. Okt 2011
125 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Graphen aus der canvas wieder löschen

  Alt 11. Okt 2011, 10:44
Aber die sind ja immer unterschiedlich...
Ach, Ich glaub ich bleib beim NIL und werde meinen Lehrer am Donnerstag drauf ansprechen.

Trotzdem danke

Aaaaha! Habs das Gefunfen und es Funktioniert auch^^
Image1.Canvas.Rectangle(0,0,width,height);

Geändert von Blubbel (11. Okt 2011 um 10:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#7

AW: Graphen aus der canvas wieder löschen

  Alt 11. Okt 2011, 10:52
Sicher, das geht auch, wenn Dich ein evtl. Rand nicht stört
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Blubbel

Registriert seit: 6. Okt 2011
125 Beiträge
 
Delphi 2010 Professional
 
#8

AW: Graphen aus der canvas wieder löschen

  Alt 11. Okt 2011, 10:53
Nee, ist ja keiner.... ich zeig dir ma den ganzen QT... Am Koordinatensystem ist ja eh schon ein Rand...
Delphi-Quellcode:
unit main;

interface

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

type
  TForm1 = class(TForm)
    edtEingabe: TEdit;
    lblFX: TLabel;
    lbl_X: TLabel;
    btn_Zeichne: TButton;
    Image1: TImage;
    edt_Bx: TEdit;
    lbl_bx: TLabel;
    edt_C: TEdit;
    lbl_C: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    edtFx: TEdit;
    edt_X: TEdit;
    edt_B: TEdit;
    edt_Cx: TEdit;
    btn_Zeichne1: TButton;
    btn_neu: TButton;
    btn_close: TButton;
    Label1: TLabel;
    Label3: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure btn_ZeichneClick(Sender: TObject);
    procedure btn_Zeichne1Click(Sender: TObject);
    procedure btn_closeClick(Sender: TObject);
    procedure btn_neuClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  a,b,c: Real;

implementation

{$R *.dfm}

procedure TForm1.btn_closeClick(Sender: TObject);
begin
 Form1.Close;
end;

procedure TForm1.btn_ZeichneClick(Sender: TObject);
var
  i,j:Integer;
  x,y: Real;
begin
  a:= StrToFloat(edtEingabe.Text);
  b:= StrToFloat(edt_Bx.Text);
  c:= StrToFloat(edt_C.Text);
  i:=20;
  while i<660 do
  begin
    i:=i+1;
    x:=(i-450)/50; //50, da Koordinatensystem in 50er Schritten erstellt ist
    y:=a*sqr(x)+b*x+c;
    j:=round((450-y*50)); //450 Grenze von X-Achse
    Image1.Canvas.Pixels[i,j]:=clblue; //zeichnen
  end;
end;

procedure TForm1.btn_neuClick(Sender: TObject);
begin
  Image1.Canvas.Rectangle(0,0,width,height);
  FormCreate(Sender);
  begin
    edtEingabe.Text:='';
    edt_Bx.Text:='';
    edt_C.Text:='';
    edtFx.Text:='';
    edt_X.Text:='';
    edt_B.Text:='';
    edt_Cx.Text:='';
  end;
end;

procedure TForm1.btn_Zeichne1Click(Sender: TObject);
var
  i,j:Integer;
  x,y: Real;
begin
  a:= StrToFloat(edt_X.Text);
  b:= StrToFloat(edt_B.Text);
  c:= StrToFloat(edt_Cx.Text);
  i:=20;
  while i<660 do
  begin
    i:=i+1;
    x:=(i-450)/50; //50, da Koordinatensystem in 50er Schritten erstellt ist
    y:=a*sqr(x+b)+c;
    j:=round((450-y*50)); //450 Grenze von X-Achse
    Image1.Canvas.Pixels[i,j]:=clred; //zeichnen
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i,j,k:Integer;
begin
  with Image1.Canvas do
  begin //X-Achse
    MoveTo(1125,450); //Graph
    LineTo(20,450);

    for i:= -8 to 13 do
    begin
      Image1.Canvas.TextOut(450+50*i,455,IntToStr(i)); //Beschriftung
      MoveTo(450+50*i,445); //Striche von Beschriftung
      LineTo(450+50*i,455);
      begin //Y-Achse
        MoveTo(450,20); //Graph
        LineTo(450,660);

        for j := -8 to -1 do
        begin
          Image1.Canvas.TextOut(455,450+50*j,IntToStr(-j)); //Beschriftung
          MoveTo(445,450+50*j); //Striche von Beschriftung
          LineTo(455,450+50*j);

          for k := 1 to 4 do
          begin
            Image1.Canvas.TextOut(455,450+50*k,IntToStr(-k)); //Beschriftung
            MoveTo(445,450+50*k); //Striche von Beschriftung
            LineTo(455,450+50*k);
          end;
        end;
      end;
    end;
  end;
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Graphen aus der canvas wieder löschen

  Alt 11. Okt 2011, 11:31
Du kannst auch den Graphen mit Pen.Mode pmNotXor neuzeichnen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  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 08:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz