![]() |
Fragen zur Komponente TPanel
Hallo,
ich habe zwei Fragen zu der Komponente TPanel. Ist es machbar, die vier Kanten eines Panels abzurunden? Falls es nicht funktioniert, welche Alternativen gibt es denn, außer das verwenden von TImage? Desweiteren möchte ich, dass mein Panel bei einem OnClick Event die Farbe verändert. Wie kann man das am besten realisieren? Lg yasR |
Re: Fragen zur Komponente TPanel
Es gibt noch TShape, wenn es darum geht eine Form auf dem Formular darzustellen.
Die Farbe kannst du via der Eigenschaft Color verändern, das funktioniert natürlich nicht ab XP, wenn der XP Style aktiv ist. Denn dann übernimmt das Betriebssystem ja das Zeichnen. |
Re: Fragen zur Komponente TPanel
Hallo,
für die abgerundeten Ecken braucht man nur über die Staatsgrenze gehen (am Bodensee gehts), nämlich zu den ![]() Es ginge auch das hier von den ![]() |
Re: Fragen zur Komponente TPanel
danke Helmi, genau das passende ;-)
aber weshalb bekomme ich hier Fehlermeldungen angezeigt? -.-
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
const bgcolor = $00FFDDEE; linecolor = $00554366; var img: array of TImage; reg: hrgn; i: Integer; begin for i := 0 to ComponentCount - 1 do begin if Components[i].ClassName = 'TPanel' then begin setlength(img, Length(img) + 1); img[i] := TImage.Create(Self); img[i].Width := (Components[i] as TPanel).Width; img[i].Height := (Components[i] as TPanel).Height; img[i].Parent := (Components[i] as TPanel); img[i].Canvas.Brush.Color := bgcolor; img[i].Canvas.pen.Color := bgcolor; img[i].Canvas.Rectangle(0,0,img[i].Width, img[i].Height); img[i].Canvas.pen.Color := linecolor; img[i].Canvas.RoundRect(0,0,img[i].Width - 1,img[i].Height - 1,20,20); reg := CreateRoundRectRgn(0,0,(Components[i] as TPanel).Width, (Components[i] as TPanel).Height, 20,20); setwindowrgn((Components[i] as TPanel).Handle, reg, True); deleteobject(reg); end; end; end; ![]() |
Re: Fragen zur Komponente TPanel
Hast du die Unit ExtCtrls eingebunden?
Ansonsten ist das evtl wieder der Bug in Error Insight. |
Re: Fragen zur Komponente TPanel
Kannst du das Progrogramm kompilieren und ausführen?
Wenn ja, dann ignorier es einfach > ![]() |
Re: Fragen zur Komponente TPanel
also ExtCtrls ist auf jeden eingebunden, ich kann es nicht ausführen -.-
|
Re: Fragen zur Komponente TPanel
Welche Fehlermeldung erscheint denn?
Und in welche Zeile springt er? Was mir gerade aufgefallen ist: 'if Components[i] is TPanel then' dürfte etwas sauberer (und evtl auch sicherer) sein. |
Re: Fragen zur Komponente TPanel
[Pascal Fehler] Unit3.pas(33): E2003 Undefinierter Bezeichner: 'TImage'
[Pascal Fehler] Unit3.pas(40): E2003 Undefinierter Bezeichner: 'TPanel' [Pascal Fehler] Unit3.pas(40): E2029 Anweisung erwartet, aber 'THEN' gefunden [Pascal Fehler] Unit3.pas(43): E2018 Record, Objekt oder Klassentyp erforderlich [Pascal Fehler] Unit3.pas(44): E2066 Operator oder Semikolon fehlt [Pascal Fehler] Unit3.pas(44): E2015 Operator ist auf diesen Operandentyp nicht anwendbar [Pascal Fehler] Unit3.pas(45): E2066 Operator oder Semikolon fehlt [Pascal Fehler] Unit3.pas(45): E2015 Operator ist auf diesen Operandentyp nicht anwendbar [Pascal Fehler] Unit3.pas(46): E2066 Operator oder Semikolon fehlt [Pascal Fehler] Unit3.pas(46): E2015 Operator ist auf diesen Operandentyp nicht anwendbar [Pascal Fehler] Unit3.pas(47): E2066 Operator oder Semikolon fehlt [Pascal Fehler] Unit3.pas(48): E2066 Operator oder Semikolon fehlt [Pascal Fehler] Unit3.pas(49): E2066 Operator oder Semikolon fehlt [Pascal Fehler] Unit3.pas(49): E2250 Es gibt keine überladene Version von 'Rectangle', die man mit diesen Argumenten aufrufen kann [Pascal Fataler Fehler] Project4.dpr(5): F2063 Verwendete Unit 'Unit3.pas' kann nicht compiliert werden if Components[i] is TPanel then bringt auch kein Erfolg -.- |
Re: Fragen zur Komponente TPanel
Nochmal: steht ExtCtrls mit in der uses-Klausel?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:56 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 by Thomas Breitkreuz