Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Paintbox sichtbar machen (https://www.delphipraxis.net/130968-paintbox-sichtbar-machen.html)

blink182 16. Mär 2009 23:53

Re: Paintbox sichtbar machen
 
mhm der Code färbt doch deine Paintbox weiß, ich weiß jetzt nicht wo dein Problem ist, dann mach dir einen Button und schreib den Code im OnClick-Ereignis darein

Code46 16. Mär 2009 23:58

Re: Paintbox sichtbar machen
 
PERFEKT danke dir. Wars mir eine große hilfe.

Aber habe noch eine frage mit dem Colorgrid. Wie kann ich die farben eizenlt auswählen und abfragen??

blink182 17. Mär 2009 00:03

Re: Paintbox sichtbar machen
 
im OnChange Ereignis von dem ColorGrid kannst du dann

Delphi-Quellcode:
paintbox1.canvas.brush.color:=ColorGrid1.BackgroundColor;
und zum malen vllt

Delphi-Quellcode:
paintbox1.canvas.pen.color:=ColorGrid1.ForegroundColor;
aber wie du möchtest ;)

aber was auch vllt ganz gut wäre, wäre der ColorDialog:

Delphi-Quellcode:
if ColorDialog1.execute then
paintbox1.canvas.brush.color:=ColorDialog1.Color;

Code46 17. Mär 2009 00:10

Re: Paintbox sichtbar machen
 
DANKEEEEEEEEEEE aber :-D das mit dem ColorDialog für das muss ich doch eine eigen Procedure schreiben oder????

blink182 17. Mär 2009 00:25

Re: Paintbox sichtbar machen
 
mhm die abfrage kannst du ja auch in dem button machen, wie du willst ;)
Delphi-Quellcode:
if ColorDialog1.execute then
paintbox1.canvas.brush.color:=ColorDialog1.Color
else
paintbox1.canvas.brush.color:=clwhite;
paintbox1.Canvas.FillRect(Rect(0,0,paintbox1.width,paintbox1.height));
wobei colorgrid die auswahl derfarben sehr gering ist ;) bei 16/255^3 Farben :D

hab noch eben was anderes probiert (wenn du jetzt das 4*4 ColorGrid hast und du dann unten rechts hinclickst kannst du noch ne ander Farbe wählen, wie du willst)

Delphi-Quellcode:
procedure TForm1.ColorGrid1Click(Sender: TObject);
begin
if ColorGrid1.Selection=15 then
begin
if ColorDialog1.execute then
paintbox1.canvas.brush.color:=ColorDialog1.Color
else
paintbox1.canvas.brush.color:=clwhite;
end
else
paintbox1.canvas.brush.color:=ColorGrid1.ForeGroundColor;
// entweder du machst es noch mit einem Extra Button siehe unten oder du fügst hier die ZEile ein
// paintbox1.Canvas.FillRect(Rect(0,0,paintbox1.width,paintbox1.height));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
paintbox1.Canvas.FillRect(Rect(0,0,paintbox1.width,paintbox1.height));
end;
Gn8 blink182

Code46 17. Mär 2009 00:35

Re: Paintbox sichtbar machen
 
danke ich glaube ich bleibe bei colorgrid müsste reichen von de farben. Aber ich versuche die ganze Zeit mit der Hintergrundfarbe weiß. Mit dem Button geht das jedoch wenn ich das in das FormCreat einfüge dann funkioniert nicht. KOMISCH :?

jaenicke 17. Mär 2009 01:01

Re: Paintbox sichtbar machen
 
Das ist nicht komisch. Eine PaintBox wird beim Zeichnen des Fensters überschrieben. Zum Beispiel wenn ein anderes Fenster über das Fenster gezogen wird.
Und das Fenster wird beim Anzeigen nach dem Erzeugen logischerweise auch neu gezeichnet.

Deshalb benutzt man eine TPaintBox im Allgemeinen auch mit einer Hintergrundbitmap.

Code46 17. Mär 2009 01:07

Re: Paintbox sichtbar machen
 
Aber normalerweise muss doch die Hintergrundfarbe weiß sein wenn ich das hier angeben bei FormCreat
Delphi-Quellcode:
paintbox.canvas.brush.color:=clwhite;
paintbox.Canvas.FillRect(Rect(0,0,paintbox.width,paintbox.height));

jaenicke 17. Mär 2009 01:10

Re: Paintbox sichtbar machen
 
Nein, wie denn? Nach dem Erzeugen des Formulars wird es angezeigt und dabei logischerweise neu gezeichnet. Und damit ist der vorher gezeichnete Inhalt weg. Was ist daran so schwer zu verstehen?

Wie gesagt: Zieh einfach ein Formular über die PaintBox, wenn du etwas hineingezeichnet hast. Danach ist der Inhalt weg.

Inhalte, die nach einem Neuzeichnen noch vorhanden sein sollen, müssen in OnPaint wieder in die PaintBox gezeichnet werden.

Code46 17. Mär 2009 01:15

Re: Paintbox sichtbar machen
 
ich glaube du verstehst nicht was ICH sage oder sagen möchte. ICH will einfach nur das gleich am anfach nachdem Compalieren die Pintbox sichtbar in weiß ist.Mehr nicht. OKI DOKI


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 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