AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi Schiebregler (Sierpinski Dreieck)

Ein Thema von Julezyyy · begonnen am 22. Okt 2008 · letzter Beitrag vom 22. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2   
Julezyyy

Registriert seit: 22. Okt 2008
6 Beiträge
 
#1

Delphi Schiebregler (Sierpinski Dreieck)

  Alt 22. Okt 2008, 12:49
Delphi Schieberegler



Hallo,

kann mir jemand bei der Frage helfen, wie ich ein Schieberegler in Delphi programmieren kann?

Anwendungsbeispiel

Sierpinski Dreieck

Dort würde ich gerne das Schieberegler für n:=zahl.value nutzen.


Vielen Dank schon ein Mal für euere tatkräfitge Unterstützung


Best regards,
Julezyyy
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Delphi Schiebregler (Sierpinski Dreieck)

  Alt 22. Okt 2008, 12:54
Hi,

ich versteh die Frage nicht ganz. Wo ist der Zusammenhang zwischen der Programmierung eines Schiebereglers und eines Sierpinski Dreiecks?

Gruß oki
42
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Delphi Schiebregler (Sierpinski Dreieck)

  Alt 22. Okt 2008, 12:55
Würde es nicht einfach eine Trackbar tun?
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
Julezyyy

Registriert seit: 22. Okt 2008
6 Beiträge
 
#4

Re: Delphi Schiebregler (Sierpinski Dreieck)

  Alt 22. Okt 2008, 12:58
Der Zusammenhang besteht darin, dass ich durch den Schieberegler die Anzhal der Zufallszahlen erhöhe, bzw. ernidriege, und somit ein mehr bzw. weniger klar erkenntliches Dreieck erhalte.

Was genau ist eine Trackbar?

Beschäftige mich seit 2 Wochen mit Delphi 7. Also bitte nicht alles so ernst nehmen

Best regards,
Julezyyy
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Delphi Schiebregler (Sierpinski Dreieck)

  Alt 22. Okt 2008, 12:59
Schau mal auf dem Reiter Win32 der Komponentenpalette, dort gibt es eine Schieber-Komponente namens TrackBar.
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
Julezyyy

Registriert seit: 22. Okt 2008
6 Beiträge
 
#6

Re: Delphi Schiebregler (Sierpinski Dreieck)

  Alt 22. Okt 2008, 13:03
Ok, habe ich. Und mit welchem Code 'füttere' ich nun diese TrackBar, damit ich mein gewünschtes Ergebnis erhalte.

Hier mein bisheriger Code:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Bild: TImage;
    Abbrechen: TButton;
    Start: TButton;
    procedure AbbrechenClick(Sender: TObject);
    procedure StartClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.AbbrechenClick(Sender: TObject);
begin
  close;
end;

procedure TForm1.StartClick(Sender: TObject);
var a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6,xstart,ystart,n,zufall,x,y,anzahl : integer;
begin
  with Bild do

     // GRUND-DREICECK ZEICHNEN

    begin
     randomize;
     a1:=220; b1:=500; a2:=720; b2:=500; a3:=920; b3:=250;
     a4:=720; b4:=20; a5:=220; b5:=20; a6:=20; b6:=250; //Dreickes-Koordinaten
     canvas.MoveTo(a1,b1); // "Stift" aufsetzen
     canvas.LineTo(a2,b2); //Zeichen zu ...
     canvas.LineTo(a3,b3);
     canvas.LineTo(a4,b5);
     canvas.LineTo(a5,b5);
     canvas.LineTo(a6,b6);
     canvas.LineTo(a1,b1); // Dreieck gezeichnet (done)

     // STARTPUNKT SETZEN

     xstart:=170; ystart:=400;
     canvas.Pixels[xstart,ystart]:=clblack;
     n:=0;
      // "Regentropfen"
          anzahl:=1000000;
     repeat
      inc(n); zufall:=random(6);
      if zufall=0 then begin
                     x:=(xstart+a1) div 2; y:=(ystart+b1) div 2;
                     canvas.Pixels[x,y]:=clred;
                     xstart:=x ; ystart:= y ;
                  end;
      if zufall=1 then begin
                     x:=(xstart+a2) div 2; y:=(ystart+b2) div 2 ;
                     canvas.Pixels[x,y]:=clgreen;
                     xstart:=x ; ystart:= y ;
                  end;
      if zufall=2 then begin
                     x:=(xstart+a3) div 2 ; y:=(ystart+b3) div 2 ;
                     canvas.Pixels[x,y]:=clblue;
                     xstart:=x ; ystart:=y ;
                  end;
      if zufall=3 then begin
                     x:=(xstart+a4) div 2 ; y:=(ystart+b4) div 2 ;
                     canvas.Pixels[x,y]:=clyellow;
                     xstart:=x ; ystart:=y ;
                  end;
      if zufall=4 then begin
                     x:=(xstart+a5) div 2 ; y:=(ystart+b5) div 2 ;
                     canvas.Pixels[x,y]:=clpurple;
                     xstart:=x ; ystart:=y ;
                  end;
      if zufall=5 then begin
                     x:=(xstart+a6) div 2 ; y:=(ystart+b6) div 2 ;
                     canvas.Pixels[x,y]:=clsilver;
                     xstart:=x ; ystart:=y ;
                  end;
      until n=anzahl;
    end; // end of with
end;


end.
Best regards,
Julezyyy
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Delphi Schiebregler (Sierpinski Dreieck)

  Alt 22. Okt 2008, 13:04
Hi,

du wirst dir sicher eine Procedure zum berechnen und zeichnen der Dreiecke geschrieben haben. Dort gibst du als Parameter die Anzahl an. Immer wenn deine Trackbar verändert wird rufst du im Change-Ereignis der Trackbar deine Procedure neu auf und übergibst den aktuellen Wert der Trackbar als Parameter. Und fertig!

Gruß oki
42
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Delphi Schiebregler (Sierpinski Dreieck)

  Alt 22. Okt 2008, 13:08
Und statt der ganzen If-Abfragen solltest Du case verwenden, das ist schneller und übersichtlicher.
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
Julezyyy

Registriert seit: 22. Okt 2008
6 Beiträge
 
#9

Re: Delphi Schiebregler (Sierpinski Dreieck)

  Alt 22. Okt 2008, 13:18
Zitat von DeddyH:
Und statt der ganzen If-Abfragen solltest Du case verwenden, das ist schneller und übersichtlicher.
Hatten wir leider noch nicht


Zitat von oki:
Hi,

du wirst dir sicher eine Procedure zum berechnen und zeichnen der Dreiecke geschrieben haben. Dort gibst du als Parameter die Anzahl an. Immer wenn deine Trackbar verändert wird rufst du im Change-Ereignis der Trackbar deine Procedure neu auf und übergibst den aktuellen Wert der Trackbar als Parameter. Und fertig!

Gruß oki
Ich kenne die zahlreichen Befehle leider nicht. Könntest du mir eine kleine Stüze geben?

Best regards,
Julezyyy
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.536 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Delphi Schiebregler (Sierpinski Dreieck)

  Alt 22. Okt 2008, 13:30
Z.B. so etwas:
Delphi-Quellcode:
unit Nix;

interface

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

type
  TForm1 = class(TForm)
    TrackBar1: TTrackBar;
    procedure TrackBar1Change(Sender: TObject);
  private
    { Private-Deklarationen }
    //private Methode, die bei Änderung der Trackbar aufgerufen wird
    procedure DoOnChange(Value: integer);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.DoOnChange(Value: integer);
begin
  //übergebene Zahl auswerten und Farbe entsprechend setzen
  case Value of
    0,1: Color := clRed;
    2,3: Color := clGreen;
    4,5: Color := clBlue;
    6,7: Color := clYellow;
    8,9: Color := clFuchsia;
    else Color := clBtnFace;
  end;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  //private Methode aufrufen, dabei Position übergeben
  DoOnChange(TrackBar1.Position);
end;

end.
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
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:33 Uhr.
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