![]() |
Panel wird nicht richtig gezeichnet
Hi,
wieso wird hier :
Delphi-Quellcode:
das Panel gefäbt und angezeigt, die Umrandung mit dem Rectangle jedoch nicht ? Und zwar nur beim Programmstart ! Wird das Panel kurz verlassen dann wird es anschließend mit Umrandung gezeichnet. :shock:
procedure TfrmKeyTest1.PanelEnter(Sender: TObject);
begin if (Sender is TPanel) then begin (Sender as TPanel).Color := clSkyBlue; Canvas.Pen.Color := clNavy; // Rahmen-Schriftfarbe Canvas.Pen.Width := PinselBreite; Canvas.Rectangle ((Sender as TPanel).Left-1, (Sender as TPanel).Top-1, (Sender as TPanel).Left + (Sender as TPanel).Width+2, (Sender as TPanel).Top + (Sender as TPanel).Height+2); end; end; Im FormShow steht noch das :
Delphi-Quellcode:
Nützt aber nichts. Das PanelEnter wird übrigens auch beim Programmstart durchlaufen (Color wird da ja auch richtig gesetzt).
Panel1.Show;
Panel1.SetFocus; |
Re: Panel wird nicht richtig gezeichnet
Moin Moin, Gibt´s einen Grund warum gegade NUR bei Enter die Umrandung gemacht werden soll...
versuchsmal zusätzlich mit weiteren Ereignissen wie clicked, .... Ich weiß das Enter reichen sollte aber aus anderen hochsprachen kenne ich noch onFocus das gibt´s aber hier nicht... |
Re: Panel wird nicht richtig gezeichnet
Hi Hansa,
ich habe Doenter überschrieben und es klappt alles.
Delphi-Quellcode:
Das Zeichnen mach ich aber im Paint!!! Ich zeichne einen Rahmen um die Compo bei select und und bei DoExit wird bei mir der Rahmen gelöscht. Kein Problem.
procedure TBaseSeyControl.DoEnter;
begin Selected := True; inherited DoEnter; end; procedure TBaseSeyControl.DoExit; begin Selected := False; inherited DoExit; end; Selected ist bei mir:
Delphi-Quellcode:
Gruß oki
property Selected : Boolean read FSelected write SetSelected;
procedure TBaseSeyControl.SetSelected(const Value: Boolean); begin FSelected := Value; IF FSelected then FFrameColor := clBlue else FFrameColor := clBlack; Invalidate; end; |
Re: Panel wird nicht richtig gezeichnet
Zitat:
Baue mal irgendwo ein kleinen Button ein mit OnClick --> Form.Repaint. Nach einem Repaint ist dein Rectangel auch weg. Ebenso, wenn du dein Fenster so weit über den Bildschirmrand verschiebst, dass das Panel (über'n Rand) verschwindet, und dann zurückziehst. //Nachtrag: Du baust ja schon ziemlich lange an deiner Rahmengeschichte herum. Mal um Labels, mal um Panels. Wie auch immer. Ich würde nicht direkt auf dem Canvas der Form herumkleistern, sondern Objekte benutzen, die ich sicht- und unsichtbar machen kann, die ich verschieben kann, etc. Einen Rahmen würde ich mir als TShape erstellen (Eigenschaften Brush, Pen und Shape korrekt setzen, damit es ein Rahmen wird) und bei Bedarf folgendermaßen um das Panel legen:
Delphi-Quellcode:
Danach hast du keine Probleme mehr mit irgendwelchen Repaints.
shape1.Left:=(Sender as TPanel).Left-PinselBreite;
shape1.Top:=(Sender as TPanel).Top-PinselBreite; shape1.Width:=(Sender as TPanel).Width+2*PinselBreite; shape1.Height:=(Sender as TPanel).Height+2*PinselBreite; shape1.Show; |
Re: Panel wird nicht richtig gezeichnet
Zitat:
![]() Gruß Hawkeye |
Re: Panel wird nicht richtig gezeichnet
Zitat:
Das sehe ich nicht so eng. Seinerzeit ging der Vorschlag mit dem TShape schon sehr rechtzeitig im Thread unter. Es ging dann um ein Label mit Rectangel und darum (zumindest in meinen Postings dort), dass das Rectangel auf eine Art und Weise da "reingewürgt" wurde, dass es einem Angst und Bange werden konnte (nicht durchsichtig, erst das Label mal verdeckend, mal darunterliegend, zum Schluss darunter hervorquellend und ggf. die Nachbarkomponenten beim Ausblenden zerstörend). :zwinker: Jetzt, hier und heute lasse ich mich jedenfalls kein zweites mal auf die Implementierung von Rectangels auf dem Form.Canvas ein. Jetzt sind Shapes dran! :twisted: :stupid: |
Re: Panel wird nicht richtig gezeichnet
Liste der Anhänge anzeigen (Anzahl: 1)
Neue Frage neuer Thread ist nicht immer produktiv, wie man sieht (ja, 3 Threads, die zusammengehören). :P
Nützt aber jetzt auch nichts mehr. Zitat:
|
Re: Panel wird nicht richtig gezeichnet
Zitat:
Hast du (mein) Posting #4 gelesen? Was sagst du zu den Repaint-Schwierigkeiten? Was machst du nun? |
Re: Panel wird nicht richtig gezeichnet
Zitat:
Was ich jetzt mache ? Vorerst nichts, höchstens auf Gegenfragen antworten, solange keine konstruktive Antwort kommt. :mrgreen: |
Re: Panel wird nicht richtig gezeichnet
Zitat:
xxxxxxxxxxxxxxxxxxxxxxxxxx ((Alles noch vorm Abschicken wieder gecanceld.)) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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