AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Tpanel verliert die Caption nach BMP Zuweisung
Thema durchsuchen
Ansicht
Themen-Optionen

Tpanel verliert die Caption nach BMP Zuweisung

Ein Thema von delphinia · begonnen am 3. Okt 2011 · letzter Beitrag vom 5. Okt 2011
Antwort Antwort
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#1

Tpanel verliert die Caption nach BMP Zuweisung

  Alt 3. Okt 2011, 21:26
Delphi-Version: 5
Hi

lade nen Bild aus der ImageList
Delphi-Quellcode:
  bmp1 := TImage.create(Panel1); // Bild erstellen.
  bmp1.Height := 50;
  bmp1.Width := 155;
  settings_imglst.GetBitmap(0, bmp1.Picture.Bitmap);
  bmp1.Parent := Panel1; // Bild ins Panel setzen

  Panel1.Repaint;
Doch die Caption wird dann überlagert! Wie kann ich das - die Caption dennoch erhalten bleibt und AUF der Bitmap liegt?
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Tpanel verliert die Caption nach BMP Zuweisung

  Alt 3. Okt 2011, 21:40
Die Caption ist nunmal "direkt" auf dem Panel.
Das TImage legst du auf das Panel (genauer davor)
und wenn das TImage nicht durchsichtig ist, an der gewünschten Stelle, dann sieht man nicht mehr, was sich dahinter befindet.

Schau nach rechts, schreib deine Caption auf diese Wand und nun häng ein Bild davor.


Lösungen:
- das Bild im TImage an der gewünschten Stelle transparent machen
- den Text auf das Bild (im TImage) draufmalen
- eine weitere Textkomponente vor das TImage (aber nicht TLabel)
$2B or not $2B

Geändert von himitsu ( 3. Okt 2011 um 21:46 Uhr)
  Mit Zitat antworten Zitat
Rob09

Registriert seit: 14. Aug 2007
58 Beiträge
 
Delphi 6 Personal
 
#3

AW: Tpanel verliert die Caption nach BMP Zuweisung

  Alt 5. Okt 2011, 15:07
Hi!

TPanel besitzt ja wie ich das sehe kein Canvas. Deshalb hätte ich da eigentlich ein TLabel mit .Transparent = True benutzt - was spricht denn dagegen, himitsu?

Beste Grüße!
Robert
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Tpanel verliert die Caption nach BMP Zuweisung

  Alt 5. Okt 2011, 15:19
Ein Panel hat schon eine Art Canvas. (an diesen würde man z.B. über .Handle des Panels rankommen)
Darauf zeichnet sich dann das Label.

Ein TLabel zeichnet sich halt immer auf den Canvas seines Parents.
(ist 'ne delphi-eigene Komponente, welche dahingehend "optimiert" wurde)
Alternativ gibt es Delphi-Referenz durchsuchenTStaticText, welche seitens Windows das ist, was ein TLabel für Delphi darstellen soll.


Darum kann man z.B. auch kein TLabel vor ein TEdit, TButton, TImage legen, weil es sich ja auf den dahinterliegenden Parent zeichnen will, welcher dabei schließlich verdeckt ist.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

AW: Tpanel verliert die Caption nach BMP Zuweisung

  Alt 5. Okt 2011, 15:23
Unter XE funktioniert das auch mit einem Label.

[edit] P.S.: TPanel besitzt nicht nur eine Art Canvas, sondern tatsächlich eine Canvas-Property (geerbt von TCustomControl). Nur ist diese protected, deshalb kommt man da nur aus abgeleiteten Klassen heran. [/edit]
Miniaturansicht angehängter Grafiken
labelaufimageaufpanel.jpg  
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 5. Okt 2011 um 15:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Tpanel verliert die Caption nach BMP Zuweisung

  Alt 5. Okt 2011, 15:32
Die werden doch nicht etwa was am Label geändert haben?
Grad ausprobiert ... stimmt.

Hmm, ich dachte TImage hätte ein eigenes Canvas.

Aber vielleicht zeichnet es sich auch nur auf den Canvas des Parent?
Wenn ja, dann würde es dieses Verhalten erklären


[add]
k.A. ob das schon immer so war.

Das Canvas des TImage wird nur auf das Canvas des darinliegenden Graphic-Controls geleitet (nicht auf den Bildschirm).
Quasi im OnPaint wird das Graphic-Controls dann, genauso wie das TLabel, ausgegeben.



Fazit: OK, TLabel kann vor TImage (muß nur in der Erstellungsreihenfolge danach kommen), aber dafür kann TImage und TLabel z.B. nicht vor TButton.
$2B or not $2B

Geändert von himitsu ( 5. Okt 2011 um 15:39 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:33 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