![]() |
Re: Halb-durchsichtiges Panel?
Nein selber Zeichnen
|
Re: Halb-durchsichtiges Panel?
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:
Das sieht zwar nicht so ganz professionell aus, weil man eben doch ein Raster erkennt, aber so geht es am einfachsten.
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; |
Re: Halb-durchsichtiges Panel?
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! ![]() |
Re: Halb-durchsichtiges Panel?
Zitat:
![]() 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? |
Re: Halb-durchsichtiges Panel?
kannst du die paintbox nicht einfach auf ein panel setzen?
|
Re: Halb-durchsichtiges Panel?
Mist. Daran hab ich nicht gedacht.
Zitat:
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:
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. :?
procedure TForm1.Paint;
begin inherited Paint; { ... } end; Wenn du noch fragen zu einzelnen Punkten haben, stell sie einfach :) Grüße, Yogu Edit: Zitat:
|
Re: Halb-durchsichtiges Panel?
Gerade wieder gefunden,
![]() Sollte man sich mal durchlesen etc. pp. :stupid: |
Re: Halb-durchsichtiges Panel?
Liste der Anhänge anzeigen (Anzahl: 1)
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr. |
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-2025 by Thomas Breitkreuz