AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form Refresh ?

Ein Thema von Delphiturbo · begonnen am 1. Jun 2008 · letzter Beitrag vom 11. Jun 2008
Antwort Antwort
Seite 1 von 3  1 23      
Delphiturbo
(Gast)

n/a Beiträge
 
#1

Form Refresh ?

  Alt 1. Jun 2008, 20:30
Hallo,

ich habe einen Transparenten Panel auf meine Form
Der Trs-Panel lässt Flecken bei:
-Programm minimieren und maximieren
-Oder wenn ich den Trs-Panel invisible und visible mache
-oder Wenn ein Fenster drauf (auf Trs-Panel) kommt
und und ...

Nur bis heute habe ich Zufall bemerkt, dass diese Spuren und Flecken vom Trs-Panel sofort weg gehen , wenn ich die Form (Mein Programm) verschiebe

Das gibt mir eine Hoffnung um diese Flecken zu verhindern
Momentan lasse ich meine Form beim Maximieren z.B. hin und her um ein Pixel bewegen
um diese Flecken zu löschen

Vielleicht hat jemand mit Refresh noch eine bessere Lösung ?

Bitte nicht so denken:
Delphi-Quellcode:
Form1.Refresh; // macht noch mehr Flecken
Form1.Repaint; // macht auch noch mehr Flecken !!!
Was passiert noch beim Form-Verschieben ?
Das konnte die Lösung sein
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Form Refresh ?

  Alt 1. Jun 2008, 21:11
Um was für eine Komponente handelt es sich denn dabei? (Selbstgeschrieben oder kommerzielle Komponnete einer bestimmten Firma, Freeware, Open Source Porjekt...)

Ein bissl Code wär enicht schlecht, denn beim Repaint oder Refresh des Forms wird nix anderes gemacht als neu zu zeichnen. Es wundert mich daher, dass noch mehr "Flecken" entstehen.
  Mit Zitat antworten Zitat
Macci

Registriert seit: 31. Mai 2007
129 Beiträge
 
#3

Re: Form Refresh ?

  Alt 1. Jun 2008, 21:14
Versuchs mal mit

InvalidateRect
(siehe Hilfe)
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

Re: Form Refresh ?

  Alt 1. Jun 2008, 21:30
oder nimm
SendMessage(handle, WM_Paint, 0, 0);

rollstuhlfahrer
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Delphiturbo
(Gast)

n/a Beiträge
 
#5

Re: Form Refresh ?

  Alt 1. Jun 2008, 22:00
mit
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
und
invalidaterect(windowfromdc(0), nil, false);
Haben nichts gebracht

>> um was für eine Komponente handelt es sich denn dabei?
Ich habe sowohl eine freeware (Trs-Panel) als auch von JvPanel getestet

Meine Frage warum wird meine Form wieder schön und ohne Flecken, wenn ich die Form bewege ?
Darum habe ich mit Refresh und repaint versucht.
Was passiert beim Bewegen einer Form außer Refresh und Repaint ?
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Form Refresh ?

  Alt 1. Jun 2008, 22:09
Delphi-Quellcode:
procedure TControl.Refresh;
begin
  Repaint;
end;
Delphi-Quellcode:
procedure TWinControl.Repaint;
begin
  Invalidate;
  Update;
end;
Wo gibt es denn die Komponente Trs-Panel zum Download (URL)?
Oder kannst Du diese als Zip anhängen?
  Mit Zitat antworten Zitat
Delphiturbo
(Gast)

n/a Beiträge
 
#7

Re: Form Refresh ?

  Alt 1. Jun 2008, 22:22
TransparentPanel - Freeware with sources:
http://www.zecos.com/delphi/components.html
  Mit Zitat antworten Zitat
Macci

Registriert seit: 31. Mai 2007
129 Beiträge
 
#8

Re: Form Refresh ?

  Alt 1. Jun 2008, 22:29
Versuchs doch mal mit EraseBackground, also

InvalidateRect(handle, nil, True);

Wenn du meinst, es liegt am Verschieben, versuchs mal so:

MoveWindow(handle, left, top, width, height, True);
  Mit Zitat antworten Zitat
Delphiturbo
(Gast)

n/a Beiträge
 
#9

Re: Form Refresh ?

  Alt 1. Jun 2008, 22:37
Zitat von Macci:
Wenn du meinst, es liegt am Verschieben, versuchs mal so:
MoveWindow(handle, left, top, width, height, True);
Das ist mein alte Lösung, was ich gerne nicht machen möchte
Ich verschiebe meine Form um ein Pixcel Form1.left:=Form1.left+1
das ist aber keine alternative Lösung
oder was meinst Du mit :
MoveWindow(handle, left, top, width, height, True);
  Mit Zitat antworten Zitat
Macci

Registriert seit: 31. Mai 2007
129 Beiträge
 
#10

Re: Form Refresh ?

  Alt 1. Jun 2008, 22:51
Im Grunde genau wie deine alte Lösung, nur dass sich die Form dabei NICHT unsauber um einen Pixel verschiebt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 14:03 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