![]() |
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.
|
Re: Form Refresh ?
Die Komponente ist aus dem jahr 2004.
Wenn du unter Vista programmierst kann es doch gut sein, dass die Komponente dafür nicht entwickelt wurde?! Frage ist nun was du in deinem Programm bezwecken willst. |
Re: Form Refresh ?
Zitat:
Und warum bei JvPanel genauso ist !? >> wenn du unter Vista programmierst kann es doch gut sein Leider kann ich nicht, da heute fast 95% xp verwenden Ich habe versehe immer noch nicht, warum beim Verschieben der Form gehen die Flecken weg :gruebel: . Ich habe die Tipps von Leute gemacht wie ohne Erfolg |
Re: Form Refresh ?
also nutzt du XP - schon mal gut zu wissen :-)
hast du dir mal das demoprojekt zu dem tr-panel angesehen? |
Re: Form Refresh ?
Zitat:
|
Re: Form Refresh ?
Also, so sollte es defintiv gehen:
Füge diese Code irgendwo am Anfang ein.
Delphi-Quellcode:
Und dann da, wo du die Flecken weg machen willst:
procedure InvalidateAll(Control:TWinControl);
var i:integer; begin InvalidateRect(Control.Handle,nil,True); for i:=0 to Control.ControlCount - 1 do if Control.Controls[i] is TWinControl then InvalidateAll(TWinControl(Control.Controls[i])); end;
Delphi-Quellcode:
Probiers aus !!
InvalidateAll(Self);
Viele Grüsse, Macci |
Re: Form Refresh ?
>> InvalidateAll(Self);
Mit deiner Funktion kommen leider noch mehr Flecken ! Der Trns-Panel wird komplett grau ! |
Re: Form Refresh ?
versuch mal, bei dem Transparent-Panel die Transparenz auszuschalten und dann wieder an. (Eigentlich ist dies hier keine Ratestunde)
rollstuhlfahrer |
Re: Form Refresh ?
Zitat:
|
Re: Form Refresh ?
Liste der Anhänge anzeigen (Anzahl: 1)
Bild im Anhang
|
Re: Form Refresh ?
|
Re: Form Refresh ?
Was ist jetzt bemerkt habe, der Panel verliert seine Transparenz nicht. Gott sei Dank, aber trotzdem ist auch schlecht, da der TrsPanel immer noch der Verursacher ist.
Die Farbe, was ich sehe, wenn das Problem eintrit, ist nicht von dem transparenten Panel, sondern von der Form :gruebel: Die Form darf auch nicht durch den Panel gesehen werden, da unter dem Panel bereits der Webbrowser liegt dann kommt ein anderer Panel und ganz unten ist die Form Wer kann mir sagen warum wird die Form durch den Trs-Panel gesehen, obwohl zwischen Trs-Panel und Form schon mehrere Objekte sich befinden ? Ich kann kauf verstehen :wall: |
Re: Form Refresh ?
vieleicht geht es auch mit panel.refresh/repaint...
|
Re: Form Refresh ?
Zitat:
Zu der zweiten Zeile: ich würde nicht wie mein Vorposter nur das Panel aktualisieren, sondern alles in der Reihenfolge Form, Panel, Webbrowser, TrsPanel Für was brauchst du das TrsPanel eigentlich über einem Webbrowser :?: :gruebel: rollstuhlfahrer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 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