WinFuture-Forum.de: Delphi Programm "paint" - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 3 Seiten +
  • 1
  • 2
  • 3

Delphi Programm "paint" Dickes Problem

#31 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.434
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 05. Januar 2006 - 23:56

Ich habs jetzt mal schnell selber nochmal geschrieben:

Wenn du es so machst geht es auf jeden fall:

Form1.Graphl.Canvas.Pen.Color:=clnavy;
Form1.Graphl.Canvas.Pen.Width:=1;
Form1.Graphl.Canvas.Ellipse(40,40,60,60);



Die zahlen hab ich jetzt nur zum testen genommen, du musst wissen die linke obere ecke ist 1; 1 und dann wird runtergezählt.


edit 2 bedeutet das der kreis 2 pixel groß ist, das übersieht man dann doch schnell...

Dieser Beitrag wurde von tavoc bearbeitet: 05. Januar 2006 - 23:56

your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

Anzeige



#32 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 06. Januar 2006 - 00:24

ich heul gleich.. das gibts doch nicht.. klappt auch nicht.. hast du nur ne paintbox (also diese graphl) oder noch irgendwas in diesen zeichenfeldern gemacht?
was meinst du mit 2px? wenn ich bei umfang 2 eingeb sind das doch nich 2pixel? so sollte das eig. nich sein.. der hat doch bei den rechnungen auch immer das als maßeinheiten genommen..das soll der jetzt aber auch machen.. *verzweifel*
0

#33 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.434
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 06. Januar 2006 - 10:16

type
  TForm1 = class(TForm)
	PaintBox1: TPaintBox;
	Button1: TButton;
	Edit1: TEdit;
	procedure Button1Click(Sender: TObject);
  private
	{ Private-Deklarationen }
  public
	{ Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var rad,hoehex,hoehey:integer;
begin
  hoehex:=round(form1.Paintbox1.width/2);
  hoehey:=round(form1.Paintbox1.height/2);
  rad:=round(strtoint(edit1.Text));
  Form1.Paintbox1.Canvas.Pen.Color:=clnavy;
  Form1.Paintbox1.Canvas.Pen.Width:=1;
  Form1.Paintbox1.Canvas.Ellipse(hoehex-rad,hoehey-rad,hoehex+rad,hoehey+rad);
end;

end.



Die verwendeten Objekte kannst du ja auch der Deklaration entnehmen.
So wie es oben steht funktioniert es....


Btw bin erst wieder ab Sonntag wieder da .


Und ja die rad nimmt die anzahl der pixel auf, also wenn du 10 eingibts ist der radius 10 pixel.

Dieser Beitrag wurde von tavoc bearbeitet: 06. Januar 2006 - 10:31

your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#34 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 06. Januar 2006 - 10:58

ok, danke..dann werd ich mal bis sonntag rumprobieren.. mal sehen, was bis dahin geht =)
0

#35 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 07. Januar 2006 - 18:07

sooo..kleines update zum aktuellen stand: man kann in dieser paintbox jetzt freizeichnen.. und die checkbox "liniert" erzeugt auch die richtigen Linien in der Paintbox. Was nicht klappt is das karierte.. sobald ich dem verklickern will, dass er 2 linien pro durchgang malen soll, heult er rum:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
 if CheckBox1.Checked then
 begin
   with PaintBox1.Canvas do
	 begin
		MoveTo (PenPos.X,PenPos.Y+10);
	  while PenPos.Y <= 300 do
	  begin
	  Rectangle (PenPos.X,PenPos.Y,PenPos.X+350,PenPos.Y-1);
	  MoveTo (PenPos.X,PenPos.Y+10)
	  end
	 end;
 end;
end;


was dagegen wieder klappt ist das löschen des canvas feldes, also dem erneuten überpinseln mit der clbackground. was dagegen immernoch nicht klappt ist das zeichnen beruhend auf den eingaben aus den feldern "radius" (die anderen sind noch gar nicht eingebunden)

als die nächsten gimmicks würde ich gérne die optionen "drucken" und "exportieren" vom canvas feld implementieren (ja,das klingt sehr professionell ^^). Diese 2 Funktionen und vll. noch weitere würde ich ganz gerne in eine andere unit packen, allerdings keine ahnung wie man das macht. irgendwie oben uses unit2 aber wie verklickert man dem,dass er drauf zu greifen soll? dieses auslagern der 2 funktionen (und vll bald mehr) hätte den vorteil, dass ich behaupten könne, es wäre OOP ^^
0

#36 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 09. Januar 2006 - 15:09

so,jetzt klappt auch das karierte =)

problem: ausdrucken vom Canvas Feld:

procedure TForm1.Button4Click(Sender: TObject);
Var
  Rect:TRect;
begin
  PrintDialog1.Execute;
  Printer.BeginDoc;
  With Printer.PaintBox1.Canvas Do 
	Rect:=Bounds(0,0,Printer.PageWidth div 2, Printer.PageHeight div 2); 
	StretchDraw(Rect, Image1.Picture.Bitmap); 
  End; 
  Printer.Enddoc; 
End;


das akzeptiert er nicht, er kennt painbox1 nicht..

Dieser Beitrag wurde von He4db4nger bearbeitet: 09. Januar 2006 - 15:42

0

#37 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 10. Januar 2006 - 20:05

*schieb* so, mittlerweile funzt alles, ausser dass der nicht die rechtecke und quadrate in der paintbox ausgibt. grml..
0

#38 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.434
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 11. Januar 2006 - 18:48

Ich kann dir momentan nicht helfen da ich bis montag kein delphi habe.
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#39 Mitglied ist offline   He4db4nger 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.000
  • Beigetreten: 27. März 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz
  • Interessen:www.schenx.eu

geschrieben 11. Januar 2006 - 18:52

kein problem ^^ Mittlerweile läuft ja so gut wie alles.. geht nur noch um ein paar kleinere Bugs...
0

#40 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.434
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 15. Januar 2006 - 17:15

So bin wieder da, funktioniert alles?
your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

Thema verteilen:


  • 3 Seiten +
  • 1
  • 2
  • 3

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0