Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Diese prozedur gängig machen (https://www.delphipraxis.net/34684-diese-prozedur-gaengig-machen.html)

Matze 26. Nov 2004 15:19

Re: Diese prozedur gängig machen
 
Zitat:

Zitat von Nicodius
war nur beiläufig...

aber ich glaube das dzdas besser mit ner function machen solltest - vl geht das gezeichnete verloren ...

eine Function?

Und was soll zurück gegeben werden? :gruebel:

ich würde es so lassen, geht doch einwandfrei, nur, dass der Kreis evtl. nicht den Bedürfnissen von LkZ entspricht. ;)

Nicodius 26. Nov 2004 15:24

Re: Diese prozedur gängig machen
 
vl ein bitmap .. was er dann im form1 mit canvas.draw zeichnet :stupid:

LkZ 26. Nov 2004 15:30

Re: Diese prozedur gängig machen
 
Zitat:

Zitat von Matze
Zitat:

Zitat von Nicodius
war nur beiläufig...

aber ich glaube das dzdas besser mit ner function machen solltest - vl geht das gezeichnete verloren ...

eine Function?

Und was soll zurück gegeben werden? :gruebel:

ich würde es so lassen, geht doch einwandfrei, nur, dass der Kreis evtl. nicht den Bedürfnissen von LkZ entspricht. ;)

Wie kann man das denn hinbekommen, dass es meinen bedürfnissen entspricht? :oops:

LkZ 26. Nov 2004 15:34

Re: Diese prozedur gängig machen
 
Oder man zwischenspeichert die Kreise; Ich hab das gefühl das die "überschrieben" werden

Nothine 26. Nov 2004 17:37

Re: Diese prozedur gängig machen
 
hab den code grad mal überflogen und ja, deine vorherigen kreise werden überschrieben, da du von innen nach außen zeichnest, womit die immer größer werdenden neu gezeichneten kreise die alten überdecken (und der größte kommt zuletzt)... versuch mal die for-to-do schleife durch eine for-downto-do zu ersetzen und den atomkern dementsprechend als letztes zu zeichnen

//Edit: oder ich hab den code nich ordentlich überflogen und die kreise werden kleiner, dann weiß ich es auch nich :stupid:

Matze 26. Nov 2004 17:57

Re: Diese prozedur gängig machen
 
Zitat:

Zitat von LkZ
Wie kann man das denn hinbekommen, dass es meinen bedürfnissen entspricht? :oops:

Ich meinte damit nur, es zeichnet einen Kreis, nur willst du den Kreis wahrscheinlich anders haben, weil ja etwas an dem Code nicht stimmt, laut deiner Aussage. ;)

ibp 26. Nov 2004 19:29

Re: Diese prozedur gängig machen
 
Die Lösung...


Delphi-Quellcode:
procedure TForm1.DrawModel(Canvas:TCanvas;AtomNr:Real;Rad:integer);
var x0,y0,k,d:integer;
begin
  x0:=Form1.ClientWidth div 2;
  y0:=Form1.ClientHeight div 2;

  // Canvas.Ellipse(x0-Rad,y0-Rad,x0+Rad,y0+Rad); // -> wird in der schleife gezeichnet
  for k:=round(sqrt(AtomNr/2)) downto 1 do   // -> hier war der fehler !!!!
  begin
    d:=Rad*k; // nur einmal berechnet je durchgang!
    Canvas.Ellipse(x0-d,y0-d,x0+d,y0+d);
  end;
end;
es muss vom äussersten zum kleinsten kreis gezeichnet werden, da alles im kreis neu gezeichnet wird!!!

ibp 26. Nov 2004 19:53

Re: Diese prozedur gängig machen
 
Zitat:

Zitat von Nothine
hab den code grad mal überflogen und ja, deine vorherigen kreise werden überschrieben, da du von innen nach außen zeichnest, womit die immer größer werdenden neu gezeichneten kreise die alten überdecken (und der größte kommt zuletzt)... versuch mal die for-to-do schleife durch eine for-downto-do zu ersetzen und den atomkern dementsprechend als letztes zu zeichnen

//Edit: oder ich hab den code nich ordentlich überflogen und die kreise werden kleiner, dann weiß ich es auch nich :stupid:

ooops :duck: da war ja die lösung schon!

atreju2oo0 26. Nov 2004 20:29

Re: Diese prozedur gängig machen
 
Alternativ könnte man die Brush.color auch auf durchsichtig setzen...

LkZ 27. Nov 2004 11:52

Re: Diese prozedur gängig machen
 
Ja danke leute, is mir gestern auch eingefallen.. :thumb: hab ich auch schon gemacht

bis dann
MfG LKZ


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 Uhr.
Seite 2 von 3     12 3      

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