AGB  ·  Datenschutz  ·  Impressum  







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

Refresh unterbinden (Begin/EndUpdate)

Ein Thema von skyware · begonnen am 15. Nov 2004 · letzter Beitrag vom 15. Nov 2004
Antwort Antwort
skyware

Registriert seit: 11. Dez 2002
Ort: Wetzikon, Zürich
151 Beiträge
 
Delphi 6 Enterprise
 
#1

Refresh unterbinden (Begin/EndUpdate)

  Alt 15. Nov 2004, 11:58
Hallo zusammen,

folgendes Problem: wie im angehängten Projekt ersichtlich möcht ich einen
sogenannten Inspektor basteln.
Das Problem ist nun beim Aufbau des Inspektors flackert das ganze Fenster.
Ist es irgendwie möglich das Neuzeichnen eines Panels zu unterbinden?
Habs bereits mit "LockWindowUpdate" versucht, nur ist dann der Aufbau des
Fensters ziemlich langsam.

Kennst sich da jemand aus?

Gruss,
Markus
Angehängte Dateien
Dateityp: zip inspector_581.zip (24,5 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Refresh unterbinden (Begin/EndUpdate)

  Alt 15. Nov 2004, 12:19
Die API Funktion LockWindowUpdate ist eine Fehlkonstruktion, da man nur ein Window sperren kann.
Besser ist folgendes:
Delphi-Quellcode:
// von TeamB
procedure LockControl(c: TWinControl; lock: boolean);
begin
   if (c = nil) or (c.Handle = 0) then exit;
   if lock then SendMessage(c.Handle, WM_SETREDRAW, 0, 0)
   else begin
      SendMessage(c.Handle, WM_SETREDRAW, 1, 0);
      RedrawWindow(c.Handle, nil, 0,
         RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN);
   end;
end;
Andreas
  Mit Zitat antworten Zitat
skyware

Registriert seit: 11. Dez 2002
Ort: Wetzikon, Zürich
151 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Refresh unterbinden (Begin/EndUpdate)

  Alt 15. Nov 2004, 12:38
Hi,

vielen Dank für diese prompte Antwort!
Hab das gleich mal so eingebaut, und funktioniert einwandfrei!

Der Aufbau des Inspektors benötigt allerdings immer noch recht
viel Zeit...gibts da eine Möglichkeit dies noch zu beschleunigen?

Gruss,
Markus
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Refresh unterbinden (Begin/EndUpdate)

  Alt 15. Nov 2004, 12:43
Zitat von skyware:
Hi,

vielen Dank für diese prompte Antwort!
Hab das gleich mal so eingebaut, und funktioniert einwandfrei!

Der Aufbau des Inspektors benötigt allerdings immer noch recht
viel Zeit...gibts da eine Möglichkeit dies noch zu beschleunigen?

Gruss,
Markus
Hi,

ich habe versucht es etwas zu optimieren. Vielleicht hilft es dir ja weiter.

mfG
mirage228
Angehängte Dateien
Dateityp: zip nspector.zip (26,5 KB, 7x aufgerufen)
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#5

Re: Refresh unterbinden (Begin/EndUpdate)

  Alt 15. Nov 2004, 13:00
Wenn man kein flackern haben will
sollte man beim Panel DoubleBuffered := True
setzen ist dann allerdings wieder mal etwas
langsamer.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
skyware

Registriert seit: 11. Dez 2002
Ort: Wetzikon, Zürich
151 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Refresh unterbinden (Begin/EndUpdate)

  Alt 15. Nov 2004, 13:02
Hallo zusammen,

so nun hab ne schnelle Lösung gefunden, danke Euch allen!
Den grossen Geschwindigkeitsverlust verursacht hat die ganze Parent
Geschichte. Ich erstelle nun zuerst alle einzelnen Rows, und am Ende
erst werden dann sämtliche Parents verknüpft.
Hab die aktuellste Version nochmals als Attachment angehängt,
falls jemand Interesse hat

Gruss,
Markus
Angehängte Dateien
Dateityp: zip inspector_169.zip (28,0 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


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:58 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