Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Panels.... (https://www.delphipraxis.net/9745-panels.html)

Vale 2. Okt 2003 23:50


Panels....
 
Hi Leute....

also ich hab jetzt vier Panels auf meiner oberfläche, und will darauf jetzt jeweils nen
Kreis mit farbe setzen...wie mache ich das!?

Ich habe sechs Farben zur auswahl, und das programm soll mir von den sechsen
vier auswählen, und sie in die vier kreise setzten! Es darf aber keine Farbe
zweimal vorkommen!

Kann mit dabei vielleicht jemand helfen?? :oops:

Wäre für jeden tipp dankbar... :)




:hi:

Christian Seehase 2. Okt 2003 23:59

Re: Panels....
 
Moin Vale,

ich hab' gerade in einem Thread ein Beispiel geschrieben, wie man Hier im Forum suchenLottozahlen ohne doppelte auslosen kann.
Das könnte Dir schon mal weiterhelfen.

MrSpock 3. Okt 2003 00:02

Re: Panels....
 
Hallo Vale,

aber bei Master Mind dürfen die Farben auch mehrfach vorkommen. 8)

Christian Seehase 3. Okt 2003 00:09

Re: Panels....
 
Moin Spockie,

man kann auch die Variante ohne doppelte Farben spielen.
Ist natürlich leichter zu erraten, aber vorgesehen ist es ;-)

Vale 3. Okt 2003 00:26

Re: Panels....
 
Hi....

ja klar...man kann es auch mit doppelt spielen, aber ich bin
froh wenn mein programm erst mal so geht! :)

Danke für den link, chris! Werd mich da mal probieren reinzuhängen! :coder:

:hi:

Gandalfus 3. Okt 2003 11:22

Re: Panels....
 
Zitat:

Zitat von Vale
Hi Leute....

also ich hab jetzt vier Panels auf meiner oberfläche, und will darauf jetzt jeweils nen
Kreis mit farbe setzen...wie mache ich das!?

warum nimmst du Panels?
Die verbrauchen besonders viele Resourcen.
Zeichne lieber direkt auf das Form oder wenn du mouse ereignisse haben willst benutze 4 Paintboxen. Wie man Kreise zeichnet weisst du doch oder?

Vale 4. Okt 2003 21:14

Re: Panels....
 
Zitat:

Zitat von Gandalfus
Zitat:

Zitat von Vale
Hi Leute....

also ich hab jetzt vier Panels auf meiner oberfläche, und will darauf jetzt jeweils nen
Kreis mit farbe setzen...wie mache ich das!?

warum nimmst du Panels?
Die verbrauchen besonders viele Resourcen.
Zeichne lieber direkt auf das Form oder wenn du mouse ereignisse haben willst benutze 4 Paintboxen. Wie man Kreise zeichnet weisst du doch oder?

Hi...

ich muss später die Farben ansprechen können, zum vergleichen mit den eingegeben Farben!
Die eingabe erfolgt ja per Hardware...deshalb brauch ich auch keine MausEreignisse.
Kann mir niemand sagen wie ich ein kreis auf ein panel bekomm??
Ihr wisst das doch bestimmt :cry:
Des geht irgendwie mit Brush... :roll:


Danke... :)

Christian Seehase 4. Okt 2003 21:32

Re: Panels....
 
Moin Vale,

so könntest Du einen roten Kreis mit 50 Pixel Durchmesser auf ein Panel bekommen (hier in die linke obere Ecke)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var
  hDC      : DWORD;
  hBrush   : DWORD;
  hBrushOld : DWORD;

begin
  hDC := GetDC(Panel1.Handle);
  try
    hBrush   := CreateSolidBrush(RGB(255,0,0));
    hBrushOld := SelectObject(hDC,hBrush);
    try
      Ellipse(hDC,0,0,50,50);
    finally
      DeleteObject(hBrush);
      SelectObject(hDC,hBrushOld);
    end;
  finally
    ReleaseDC(Panel1.Handle,hDC);
  end;
end;
Ich halte es allerdings für sinnvoller, wenn Du kein Panel, sondern eine Paintbox, oder einen Shape nimmst.
Um flexibler in der Darstellung zu sein, könntest Du es auch mit TImage machen. Dazu könntest Du dann die Bilder z.B. aus Bitmaps laden.

Vale 5. Okt 2003 00:09

Re: Panels....
 
Hi Chris...

vielen vielen Dank....jetzt gehts!! :hello:
Mein nächstes problem is...ich habe ja vier Kreise,
und alle vier kreise müssen unterschiedliche farben haben.
Zur auswahl hab ich davor sechs farben definiert, und das er mit
randomize mir eine farbe per zufall holt.

Delphi-Quellcode:
Randomize;             //Zufall für Farben!!
x := random(6);
case x of
  0: Farbe := clred;
  1: Farbe := cllime;
  2: Farbe := clblue;
  3: Farbe := clyellow;
  4: Farbe := clfuchsia;
  5: Farbe := clteal;
end;
und dann beim aufruf:

Delphi-Quellcode:
hBrush   := CreateSolidBrush(Farbe);
Deinen Quelltext hab ich dann für alle vier panels genommen, bloß is es
jetzt so ...das er mir in alle vier kreise die gleiche farbe macht!
Hab scho probiert dazwischen die farben wieder mischen...aber ich hab einfach
zu wenig ahnung :wall:

Wie bekomm ich des hin...das erstmal unterschiedliche Farben in meinen vier kreisen erscheinen...und dann noch das keine doppelt vorkommt.

Kann mir dabei vielleicht jemand helfen?! :oops:


:hi:

Christian Seehase 5. Okt 2003 01:08

Re: Panels....
 
Moin Vale,

wenn Du die Kreise in der genannten Weise zeichnest, brauchst Du schon mal keine Panel.
Du musst nur das Handle der Komponente angeben, auf der gezeichnet werden soll (statt Panel1.Handle, kann es auch Form1.Handle sein).
Die Position an der die Kreise gezeichnet werden sollen wird in den Paramtern von Ellipse angegeben.
Zweiter und dritter Parameter geben die X- und die Y-Koordinate der linken oberen Ecke, die nächsten der rechten unteren Ecke des Rechteckes an, das den Kreis umschliesst.
Damit kannst Du dann die Kreise beliebig positionieren.
Experimentiere doch einfach mal mit den den Parametern von Ellipse.

Mach Dir doch aus der Zeichenroutine eine Prozedur, der die Farbe, und die Koordinaten (z.B. X-Kreismittelpunkt, Y-Kreismittelpunkt) als Parameter übergeben werden. Den Durchmesser wirst Du ja wohl eh' festlegen.

Um jetzt eine Auswahl zu treffen, schau Dir bitte mal den Thread mit den Lottozahlen an, den ich oben schon genannt habe.
Die erste Seite müsste für Deine Anwendung genügen. Wichtig ist: Du ziehst hier 4 aus 6 statt 6 aus 49, und in der Liste musst Du statt der integer die Farben (TColor) speichern.
Im Gegensatz zu dem dort genannten Problem, brauchst Du noch nicht einmal zu sortieren, bzw. Du darfst es gar nicht.
Das entfällt bei Dir also sowieso.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz