AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi TImage Paint To mehrmals aufrufen

TImage Paint To mehrmals aufrufen

Ein Thema von cltom · begonnen am 27. Jul 2007 · letzter Beitrag vom 22. Okt 2007
Antwort Antwort
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#1

TImage Paint To mehrmals aufrufen

  Alt 27. Jul 2007, 14:48
Hallo DPler,

mittels PaintTo möchte ich panels auf den canvas eines Timage malen. Das funktioniert auch. Aber genau einmal nur. Jeder weitere aufruf wird ignoriert.

Im Grunde soll es so aussehen:

Delphi-Quellcode:
case ComboBox1.ItemIndex of
  0 : Panel1.PaintTo(Image1.Canvas,0,0);
  1 : Panel2.PaintTo(Image1.Canvas,0,0);
  2 : Panel3.PaintTo(Image1.Canvas,0,0);
end;
Wie gesagt, das erste mal klappts, jeder folgende wird ignoriert. Offenbar wird der Canvas nicht übermalt, warum?

dank und gruß
tom
  Mit Zitat antworten Zitat
HalloDu

Registriert seit: 24. Apr 2006
Ort: Oelde
267 Beiträge
 
Delphi 2009 Professional
 
#2

Re: TImage Paint To mehrmals aufrufen

  Alt 27. Jul 2007, 14:50
Einerseits wird ja auch nur immer eine PaintTo Methode aufgerufen, je nachdem was in der Combobox ist und da du die Panels alle an die gleich Kooridnate zeichnest verdecken die sich natürlich gegenseitig also musst du sie versetzt zeichnen

Hoffe geholfen zu haben
Frederic H.
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#3

Re: TImage Paint To mehrmals aufrufen

  Alt 27. Jul 2007, 14:54
nun, der Plan wäre, dass je nach ComboBox immer ein panel gezeichnet wird und das alte übermalt wird.

habe auch schon image1.repaint und image1.canvas.refresh drin, nutzt aber nix
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TImage Paint To mehrmals aufrufen

  Alt 27. Jul 2007, 18:20
Hi,

mit Invalidate ging es bei mir.
Delphi-Quellcode:
  
  image1.Invalidate;
  case ComboBox1.ItemIndex of
  0 : Panel1.PaintTo(Image1.Canvas,0,0);
  1 : Panel2.PaintTo(Image1.Canvas,0,0);
  2 : Panel3.PaintTo(Image1.Canvas,0,0);
  end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#5

Re: TImage Paint To mehrmals aufrufen

  Alt 17. Okt 2007, 17:04
*aufwärm* das Problem ist noch ungelöst und ich täte Euch um Hilfe bitten:

Hier ein kleines Testprojekt, dass das Problem zeigt:

Delphi-Quellcode:
  panel1.Width := 200 + random(100);
  panel1.height := 200 + random(100);
  image1.Width := panel1.Width;
  image1.Height := panel1.Height;
  image1.Invalidate;
  panel1.PaintTo(image1.Canvas,0,0);
Falls bequemer habe ich das Projekt angehängt.

Was nun passiert:
Beim ersten mal Aufrufen wird das Panel korrekt kopiert, bei den Folgenden Versuchen stimmt width und height nicht mehr, im image wird das Panel abgeschnitten ungeachtet der Übergabe von Height und Width.

Was muss man ändern, damit das Panel immer in der richtigen Größe rüberkopiert wird?

Danke!
Angehängte Dateien
Dateityp: rar painttotest_190.rar (4,8 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#6

Re: TImage Paint To mehrmals aufrufen

  Alt 18. Okt 2007, 15:17
Falls das rar-Archiv jemanden abhält, die Dateien als
Angehängte Dateien
Dateityp: zip painttotest_106.zip (5,0 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: TImage Paint To mehrmals aufrufen

  Alt 19. Okt 2007, 20:21
Hi,

deinen Code habe ich nun so abgeändert, dass es richtig funktioniert.
Angehängte Dateien
Dateityp: zip painttotest_444.zip (9,1 KB, 7x aufgerufen)
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
cltom

Registriert seit: 22. Sep 2005
221 Beiträge
 
Delphi 12 Athens
 
#8

Re: TImage Paint To mehrmals aufrufen

  Alt 22. Okt 2007, 11:35
Danke Dir, funktioniert so!!!

Nur zu meiner Aufklärung, wie man da draufkommt:
[ ] war eh klar, muss man doch wissen
[ ] ist nicht so trivial, kann man schon übersehen
[ ] musste selber 3 Stunden basteln
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:29 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