AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Refresh / Repaint oder was?

Ein Thema von sko1 · begonnen am 31. Jan 2018 · letzter Beitrag vom 1. Feb 2018
Antwort Antwort
Seite 1 von 2  1 2   
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Refresh / Repaint oder was?

  Alt 31. Jan 2018, 08:02
Hallo,

ich entwickle gerade einen kleinen Designer, bei welchem mit der Maus Panels auf einem TImage erzeugt und vergrößert/verkleinert/verschoben werden.
Das funktioniert, allerdings habe ich die Unschönheit dass z.B. die Hilfslinien an den Kanten des zu bewegenden Panels mehrfach gezeichnet werden und damit ein immer größerer grauer Bereich entsteht, der erst wieder aktualisiert wird wenn man mit dem Bewegen aufhört.
Ein Image.Repaint und Application.ProcessMessages während der Bewegung bringt rein gar nichts, IncrementalDisplay bringt auch keine Verbesserung

Hat jemand einen Vorschlag wie man da vorgehen kann / muss?

Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.753 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Refresh / Repaint oder was?

  Alt 31. Jan 2018, 09:06
Clearst Du denn auch immer wieder den Canvas, bevor Du Deine Hilfslinien einzeichnest?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Refresh / Repaint oder was?

  Alt 31. Jan 2018, 09:10
Ein bisschen mehr Information wäre schon nicht schlecht. Da Du von Hilfslinien schreibst,
geht es um den Designer in der IDE? Wenn ja wo liegt das TImage?
Fritz Westermann
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.287 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Refresh / Repaint oder was?

  Alt 31. Jan 2018, 09:50
Es hört sich so an als wäre TImage nicht die richtige Komponente. Das hört sich eher an als ob eine TPaintBox sinnvoller wäre.

Ein Beispiel findest du hier, auch wenn es da nicht um das Verschieben von Elementen ging:
http://www.delphipraxis.net/132375-p...-beta-6-a.html
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Refresh / Repaint oder was?

  Alt 31. Jan 2018, 13:24
Ich versuche es besser zu beschreiben:

Als Untergrund dient ein TImage (was auch das Hintergrundbild beinhaltet.
Jetzt wird mit der Maus per Click und Ziehen ein Bereich gezeichnet, beim Loslassen der Maus wird dann in diesen Bereich ein Panel erzeugt, mit dem Image als Parent. An allen 4 Seiten des Panels werden 4 TShapes erzeugt die die Hilfslinien zur Positionierung sind.

Nun kann man mit der Maus das Panel bewegen, dabei müssen dann auch die Hilfslinien (Shapes) umpositioniert werden.

Das aber sorgt dafür dass die alte Hilfslinie scheinbar bestehen bleibt und die neue daneben gezeichnet wird, obwohl ich nach jeder winzigen Bewegung Image.Refresh aufrufe.

Erst beim Loslassen der Maus verschwinden die alten Hilfslinien.

Ciao
Stefan
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Refresh / Repaint oder was?

  Alt 31. Jan 2018, 13:59
Ganz dumme Frage...
Wie schaffst Du es Das Image als Parent deiner Panels zuzuweisen?
Image ist kein WinControl

Anbei einfach mal ein Testprojekt, das genau das macht was Du beschreibst, da bleibt nix stehen
Angehängte Dateien
Dateityp: zip imgmove.zip (224,1 KB, 5x aufgerufen)
Fritz Westermann
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Refresh / Repaint oder was?

  Alt 31. Jan 2018, 14:51
Hatte ich doch Mist geschrieben, der Parent ist ein Panel, auf dem auch das TImage liegt!

Dein Testprojekt funktioniert hier einwandfrei, interessanterweise habe ich mal mit ^C ^V Dein Panel kopiert, das ist undurchsichtig wie das Originale von Dir, packe ich ein TPanel aus meiner Komponentenliste drauf, ist das transparent!

Ciao
Stefan
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Refresh / Repaint oder was?

  Alt 31. Jan 2018, 14:56
Property ParentBackground auf false setzen.
Fritz Westermann
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

AW: Refresh / Repaint oder was?

  Alt 31. Jan 2018, 15:00
Danke!
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: Refresh / Repaint oder was?

  Alt 31. Jan 2018, 16:29
So, ich habe in meinem Projekt ein Panel einzeln eingefügt und exakt den gleichen Code verwendet wie im Beispiel, ich kann langsam bewegen, werde ich schneller gibt es graue Schatten da wo das Panel schon mal war.
Dabei wird sogar das Bild des TImage übermalt!

So langsam weiß ich nicht weiter!

Ciao
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 13:54 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