![]() |
Form Refresh ?
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 :wink: 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:
Was passiert noch beim Form-Verschieben ?
Form1.Refresh; // macht noch mehr Flecken
Form1.Repaint; // macht auch noch mehr Flecken !!! Das konnte die Lösung sein :gruebel: |
Re: Form Refresh ?
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. |
Re: Form Refresh ?
Versuchs mal mit
InvalidateRect (siehe Hilfe) |
Re: Form Refresh ?
oder nimm
SendMessage(handle, WM_Paint, 0, 0); rollstuhlfahrer |
Re: Form Refresh ?
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 ? |
Re: Form Refresh ?
Delphi-Quellcode:
procedure TControl.Refresh;
begin Repaint; end;
Delphi-Quellcode:
Wo gibt es denn die Komponente Trs-Panel zum Download (URL)?
procedure TWinControl.Repaint;
begin Invalidate; Update; end; Oder kannst Du diese als Zip anhängen? |
Re: Form Refresh ?
|
Re: Form Refresh ?
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); |
Re: Form Refresh ?
Zitat:
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); |
Re: Form Refresh ?
Im Grunde genau wie deine alte Lösung, nur dass sich die Form dabei NICHT unsauber um einen Pixel verschiebt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 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 by Thomas Breitkreuz