AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Halb-durchsichtiges Panel?

Ein Thema von PeterPanino · begonnen am 11. Apr 2009 · letzter Beitrag vom 12. Apr 2009
Antwort Antwort
Seite 2 von 2     12   
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Halb-durchsichtiges Panel?

  Alt 11. Apr 2009, 18:30
Nein selber Zeichnen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Yogu
Yogu

Registriert seit: 10. Jan 2008
15 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Halb-durchsichtiges Panel?

  Alt 11. Apr 2009, 21:07
Versuche es mal mit einer PaintBox. Die ist von TGraphicControl abgeleitet, also könnte das folglich klappen:

Zeichne im OnPaint einfach folgendes Raster:

Delphi-Quellcode:
var i, j: Integer;
begin
  for i := 0 to PaintBox1.Width div 2 do
    for j := 0 to PaintBox1.Height div 2 do
    begin
      PaintBox1.Canvas.Pixels[i*2, j*2] := clBlack;
      PaintBox1.Canvas.Pixels[i*2+1, j*2+1] := clBlack;
    end;
end;
Das sieht zwar nicht so ganz professionell aus, weil man eben doch ein Raster erkennt, aber so geht es am einfachsten.
Yogu
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Halb-durchsichtiges Panel?

  Alt 11. Apr 2009, 21:16
Abwechselnd zeichnen kannst du so:
Delphi-Quellcode:
        for w := 0 to VISWIDTH do
          begin
            if odd(w) then
              for h := 0 to VISHEIGTH do
                if odd(h) then
                  setpixel(hdcmem, w, h, RGB(127, 127, 127));
          end;

Du musst dir das nur selber umformen, es geschrieben, um den hintergrund eines Fenster karriert zu zeichnen, also direkt in der OnPaint message...

EDIT:
Wenn du wissen willst, wie ich es angewendet hab, dann kannst du dir hier das bsp. runterladen, und direkt ansehen, so ähnlich könntest du es dann auch mit dem Panel machen!

Graph Test
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Halb-durchsichtiges Panel?

  Alt 11. Apr 2009, 22:19
Zitat von Yogu:
Versuche es mal mit einer PaintBox. Die ist von TGraphicControl abgeleitet, also könnte das folglich klappen:

Zeichne im OnPaint einfach folgendes Raster:

Delphi-Quellcode:
var i, j: Integer;
begin
  for i := 0 to PaintBox1.Width div 2 do
    for j := 0 to PaintBox1.Height div 2 do
    begin
      PaintBox1.Canvas.Pixels[i*2, j*2] := clBlack;
      PaintBox1.Canvas.Pixels[i*2+1, j*2+1] := clBlack;
    end;
end;
Das sieht zwar nicht so ganz professionell aus, weil man eben doch ein Raster erkennt, aber so geht es am einfachsten.
Vielen Dank, Yogu! Die PaintBox sieht zwar recht hübsch aus, aber sie wird immer HINTER den anderen Steuerelementen gezeichnet:

http://img264.imageshack.us/img264/5942/paintbox.gif

Natürlich habe ich im Designfenster der IDE die Funktion "Nach vorne bringen" für die PaintBox bzw. "Nach hinten bringen" für das andere Steuerelement verwendet, aber es half nichts. Die PaintBox soll ja nun die anderen Elemente verdecken.

Wieso wird denn nun die PaintBox hinter dem Edit gezeichnet?
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Halb-durchsichtiges Panel?

  Alt 11. Apr 2009, 22:41
kannst du die paintbox nicht einfach auf ein panel setzen?
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Benutzerbild von Yogu
Yogu

Registriert seit: 10. Jan 2008
15 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Halb-durchsichtiges Panel?

  Alt 11. Apr 2009, 23:32
Mist. Daran hab ich nicht gedacht.
Zitat von PeterPanino:
Wieso wird denn nun die PaintBox hinter dem Edit gezeichnet?
Weil die PaintBox ein GraphicControl ist, und das Edit ein WinControl. Anders ist es leider nicht möglich, einen Transparenteffekt zu erzeugen.

Du kannst mit der PaintBox zum Beispiel ein Image verschleiern, oder ein Label. Aber so gut wie alles andere geht nicht. Du könntest die Methode Paint des Formulars überschreiben:

Delphi-Quellcode:
procedure TForm1.Paint;
begin
  inherited Paint;
  { ... }
end;
Im Platzhalter fügst du nun den Kariert-Code ein und änderst noch "0", "0" (die beiden Initialisierungswerte), "PaintBox1.Width" und "PaintBox1.Height" in die absoluten Koordinaten des Schleiers (siehe ClientToScreen). Ich hoffe jedenfalls, dass das klappt.

Wenn du noch fragen zu einzelnen Punkten haben, stell sie einfach

Grüße,
Yogu

Edit:
Zitat von lbccaleb:
kannst du die paintbox nicht einfach auf ein panel setzen?
Dann ist sie aber nicht mehr transparent bzw. wendet die Transparenz nur auf das Panel an
Yogu
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#17

Re: Halb-durchsichtiges Panel?

  Alt 12. Apr 2009, 09:35
Gerade wieder gefunden, http://www.delphipraxis.net/internal...=384598#384598
Sollte man sich mal durchlesen etc. pp.

Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Yogu
Yogu

Registriert seit: 10. Jan 2008
15 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Halb-durchsichtiges Panel?

  Alt 12. Apr 2009, 10:42
Genial, die Eigenschaft kannte ich noch gar nicht: csOpaque. Klar, wenn man die Deckkraft abstellt, dann ist das Control transparent.

Leider zeichnet das Transparente Panel nur den Rahmen und den Caption, nicht jedoch einen transparenten Inhalt. Ich hab mal was in der Richtung versucht (siehe Anhang), aber leider ist 1. Canvas.Pixels viel zu langsam (und ich kenne nichts à la ScanLine eines Canvas'), und zweitens stimmt die Hintergrundfarbe nicht wirklich. Du kannst dir ja mal anschauen, was ich in den Zeilen 122-130 geschrieben habe, vielleicht fällt dir ja noch was ein.

Grüße,
Yogu
Angehängte Dateien
Dateityp: pas trspanel_754.pas (4,9 KB, 24x aufgerufen)
Yogu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 14:49 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