AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Canvas soll nicht auf Parent.Canvas sondern Bitmap gezeichnet werden
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas soll nicht auf Parent.Canvas sondern Bitmap gezeichnet werden

Ein Thema von mb.99 · begonnen am 4. Jun 2014 · letzter Beitrag vom 4. Jun 2014
Antwort Antwort
mb.99

Registriert seit: 10. Dez 2011
23 Beiträge
 
#1

Canvas soll nicht auf Parent.Canvas sondern Bitmap gezeichnet werden

  Alt 4. Jun 2014, 12:33
Hallo,


um das Flackern des Canvas (KlasseA :TCosumControl) zu vermeiden möchte ich alles erst in ein PufferBitmap zeichnen,
das Problem ist das KLasseA der Parent mehrerer anderer TCostumControlls(MouseClock... soll erhalten bleiben) ist die sich selbst auf die Canvas von KlasseA zeichnen.

Wie löse ich das geschicktesten.

Gruß
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Canvas soll nicht auf Parent.Canvas sondern Bitmap gezeichnet werden

  Alt 4. Jun 2014, 12:55
TCosumControl; das Problem ist das KLasseA der Parent; TCostumControlls; MouseClock; ist die sich selbst auf die Canvas von KlasseA zeichnen. Sorry, aber wer soll das verstehen?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Canvas soll nicht auf Parent.Canvas sondern Bitmap gezeichnet werden

  Alt 4. Jun 2014, 13:02
U.U brauchst Du nur .Doublebufferd (und etwas Geduld um Deine Frage nochmals durch zu lesen)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
mb.99

Registriert seit: 10. Dez 2011
23 Beiträge
 
#4

AW: Canvas soll nicht auf Parent.Canvas sondern Bitmap gezeichnet werden

  Alt 4. Jun 2014, 13:12
Dann versuche ich es etwas genauer zu erklären:

KlasseA : TCostumControl; // Klasse A dient als Container für Objekte der KLasse B,
KlasseA.Paint
{
- Hier wird der Hintergrund als Karo gezeichnet.
}


KlasseB : TCostumControl; // KlasseB stellt ein auf KlasseA bewegbares Objekt dar, es kann mit der Maus verschoben werden
KlasseB.Paint
{
Hier wird ein farbiges Rectangle mit Text gezeichnet.
}


KlasseC : TForm // hier wird ein Objekt von KlasseA und eine dynamische Anzahl von KLasseB-Objekten erzeugt


Da KLasseA der Parent von Objekten der KlasseB ist zeichnen die Objekte der Klasse B ihr Canvas auf das ParentCanvas.
Ich möchte es aber wie bereits erwähnt in einer Bitmap zwischenspeichern um das Flackern zu vermeiden.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Canvas soll nicht auf Parent.Canvas sondern Bitmap gezeichnet werden

  Alt 4. Jun 2014, 13:18
Ich mag mich irren, aber TCustomControl zeichnet AFAIK auf seinen eigenen Canvas, im Gegensatz zu TGraphicControl.
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
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Canvas soll nicht auf Parent.Canvas sondern Bitmap gezeichnet werden

  Alt 4. Jun 2014, 13:21
Würde sagen, bissl viel Canvas?

Edit: TGraphicControl hat auch schon ein eigenes Canvas.

Geändert von Bjoerk ( 4. Jun 2014 um 13:26 Uhr)
  Mit Zitat antworten Zitat
mb.99

Registriert seit: 10. Dez 2011
23 Beiträge
 
#7

AW: Canvas soll nicht auf Parent.Canvas sondern Bitmap gezeichnet werden

  Alt 4. Jun 2014, 13:35
In der Paintmethode zeichnet jeder ins eigene Canvas, ich gehe davon aus das in der Urklasse das eigene Canvas auf das Parent.Canvas gezeichnet wird, sonst würde man ja nur den Inhalt des Parent.Canvas sehen.
  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 17:22 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