![]() |
Problem mit Label Transparents
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo ich habe ein label und habe dort Transparent im OI auf true gesetzt nun mehr wenn ich dem label einen String zuweise gibt es einen schwarzen Kasten und keine Schrift. Hier mal ein Bild.
Wo liegt der Fehler? |
AW: Problem mit Label Transparents
Das hätte ich jetzt eigentlich erwartet wenn
Delphi-Quellcode:
und
Transparent = False
Delphi-Quellcode:
wäre...
Color = clBlack
|
AW: Problem mit Label Transparents
Zur Erklärung auf der Mainform Wird ein Video abgespielt. Die Display Ausgabe ist ein TPanel. Dieses Ist auch auch auf Transparent = True gesetzt. Nun starte ich über einen Buttonclick eine weitere Form welche auch auf bsclear gesetzt ist. auf dieser Form ist Das Label. Habe ich irgendwas Übersehen???
|
AW: Problem mit Label Transparents
Ich bin wahrscheinlich sowieso nicht der richtige für VCL-Dinge. Aber trotzdem:
|
AW: Problem mit Label Transparents
Sorry ja das panel hat keine transp. Habe color auf clnone gesetzt. Hat jemand noch eine Idee???
|
AW: Problem mit Label Transparents
Zitat:
|
AW: Problem mit Label Transparents
Ändert leider Auch Nichts.. hmmmmmm???
|
AW: Problem mit Label Transparents
Kannst du ein kleines Beispiel-Projekt zum Reproduzieren des Fehlers einstellen?
|
AW: Problem mit Label Transparents
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal ein Beispiel. Das Video im Mediaplayer1 sowie das Lied im Mediaplayer2 auf form1 sollte noch geändert werden. da diese Dateien zu gross sind zum Hochladen. Mit Klick auf Mitgliederverwaltung öffnet sich die Form2. danach auf datensatz einlesen Klicken.
|
AW: Problem mit Label Transparents
Mal eine Einschätzung unter Vorbehalt (kann falsch sein, ist aber mein letzter Kenntsnisstand):
Ein Label zeichnet sich auf dem Canvas seines Parents. Deshalb wird ein Label immer hinter Controls gezeichnet. Hier ist eine Transparenz lösbar, weil das Label dann nur seinen Text zeichnen muss. Bei Panels ist das schwieriger. Eine echte Transparenz gibt es hier nicht. Ein Panel kann die Farbe seines Parents übernehmen, dann ist es nicht direkt zu sehen. Ist der Parent aber nicht einfarbig, hilft das auch nicht. Dann könnte man den passenden Ausschnitt des Parent-Canvas auf den Panel-Canvas kopieren und dann z.B. noch Text darauf zeichnen. Das ist natürlich aufwendig und schwierig. Wenn ein Panel andere Controls überdeckt (z.B. über zwei Schaltern mit dem gleichen Parent liegt), ist eine Transparenz gar nicht mehr zu erreichen. Man kann Panels "ausstanzen" oder "ausschneiden" (über Regionen), so dass Teile des Panels "fehlen" und somit eine echte Transparenz entsteht. Dann werden aber auch Controls abgeschnitten, die über der Region liegen. Es sind sozusagen richtige Löcher, die dann auch keine Mausereignisse abfangen können. Sobald ein Videoplayer ins Spiel kommt wird es noch komplizierter. Da werden dann die Daten aus einem Videobildspeicherbereich oder so verarbeitet. Da wird man dann auch je nach System mit verschiedenen Ergebnissen rechnen müssen. Firemonkey bietet da etwas mehr Flexibilität, hat aber auch wieder Schwächen. Die VCL kann man sich leider nicht als übereinander liegende Folien vorstellen, die transparente Bereiche enthalten können. Ich hoffe, das passt so ungefähr... |
AW: Problem mit Label Transparents
also gibt es "keine" Lösung für mein Problem. Sehe ich das Richtig???
|
AW: Problem mit Label Transparents
Ich kann dir versichern, es gibt eine Lösung für dein kleines Problemchen. Mach ein kleines Testprogramm bei dem das Phänomen auftritt, damit ich es nachvollziehen kann. Denn dein angehängtes Programm beinhaltet Spezialkomponenten, die bei mir nicht installiert sind, so dass ich es nicht in mein Delphi laden kann.
|
AW: Problem mit Label Transparents
Liste der Anhänge anzeigen (Anzahl: 1)
So Hier noch mal ne Funktionierende Version. Das Mit der Transparenz des Labels hat sich erledigt. Das geht jetzt. Siehe Beispiel.rar . Wie gehabt sollte der Filename des Videos im Mediaplayer auf eine eigene Videodatei geändert werden. Und jetzt sind alle Komponenten Standartkomponenten.
Habe nur noch ein Problem. Normalerweise sollte er im 2 Fenster beim erneuten Klicken das Label auf '' setzen. Es passiert aber nichts.. Woran kann das liegen hier mal der Quelltext
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus, unit1; type TForm2 = class(TForm) Timer1: TTimer; Label1: TLabel; Label2: TLabel; Button1: TButton; Button2: TButton; procedure FormShow(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} var a:string; i:integer; procedure LaufschriftLabel(ZuschreibenderTextAuswaehlen:string;TimerAuswaehlen:TTimer;LabelAuswaehlen:TLabel); begin a:=ZuschreibenderTextAuswaehlen; inc(i); if i > length(a)then begin TimerAuswaehlen.Enabled:=false; exit; end; LabelAuswaehlen.caption:= LabelAuswaehlen.caption + a[i]; end; procedure TForm2.FormShow(Sender: TObject); begin brush.Style:=bsclear; label2.caption:=''; end; procedure TForm2.Timer1Timer(Sender: TObject); begin LaufschriftLabel('Hallo das ist ein Test',timer1,label2); end; procedure TForm2.Button1Click(Sender: TObject); begin label2.caption:=''; i:=-1;// hier müsste er die Globale Variable Zurücksetzen timer1.Enabled:=true; end; procedure TForm2.Button2Click(Sender: TObject); begin close; form1.button1.Visible:=true; end; end. |
AW: Problem mit Label Transparents
Irgendwie scheint das damit zusammenzuhängen
Delphi-Quellcode:
, nimmst du die Zeile raus, klappt das alles prima. Ich habe leider nur im Moment die nicht Zeit das alles ganz genau zu analysieren.
brush.Style:=bsclear;
|
AW: Problem mit Label Transparents
Habe den Fehler mit dem Label (schwarzes recht eck) gefunden Es lag daran wenn ich den Boderstyle der Form auf bsnone gesetz habe kahm das schwarze Rechteck statt der Label.caption wenn ich auf sizeable setze ist alles Gut nur das Jetzt die Border Icons auf die Form1 ansprechen und nicht auf Form2.
|
AW: Problem mit Label Transparents
Die Exe bringt bei mir einen EMCIDeviceError (Datei wurde nicht gefunden).
Ein kompletter Screenshot würde mich aber mal interessieren... |
AW: Problem mit Label Transparents
stell mal im mediaplayer1 unter filename den pfad zu einem Video rein dann sollte es funtzen
|
AW: Problem mit Label Transparents
So Habe den Fehler gefunden.
Durch das Brush.style:=bsclear der Form2 konnte er Label2.caption:='' nicht ausführen. Durch das Ändern des Brush Styles auf bssolid konnte ich Label2.caption:='' ausführen. Das Kuriose ist die Form2 bleibt unverändert auf bsclear;
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin brush.Style:=bssolid; label2.Caption:=''; i:=-1; timer1.Enabled:=true; end; Danke für euere Bemühungen.... XDDD |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 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