AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Darstellung flackert
Thema durchsuchen
Ansicht
Themen-Optionen

Darstellung flackert

Ein Thema von p80286 · begonnen am 28. Okt 2015 · letzter Beitrag vom 28. Okt 2015
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Darstellung flackert

  Alt 28. Okt 2015, 10:44
hallo zusammen,
ja ich weiß, es gibt jede Menge Threads dazu, aber die guten Ratschläge darin sind wohl teilweise überholt.
Delphi-Quellcode:
procedure Hierwird_in_einem_Thread_gearbeitet;
begin
  ....
  postmessage(fhandle,cm_progress,i,inList.count-1);
end;

procedure TForm1.ShowCounter(aValue,maxvalue:integer);
begin
  L_Cnt.caption:=format(' %d von %d ',[avalue,maxvalue]);
  L_Cnt.Repaint;
end;

procedure TForm1.CMProgressBytes(var msg:TMessage);
begin
  ShowCounter(msg.WParam,msg.LParam);
end;
Anstatt einer schön sauberen Darstellung, holpert und stolpert der Zähler, wobei es wohl so ist, das die Darstellung, falls die Anwendung nicht den Focus hat, "Nichts/Ziffern/nichts" ist und wenn Sie den Focus hat, daß es dann "..Ziffern/Ziffern/nichts/Ziffern/Ziffern..." ist.

das Programm wurde mit D7 compiliert, läuft unter W7 und hat ein externes W7 Manifest.
mit doublebuffer ist der Effekt genauso und die Darstellung durch "Trauerränder" verunstaltet.
Ohne Manifest ist die Darstellung wie erwartet, nur eben W95-like.

Habt Ihr eine Ahnung wo man/ich da noch drehen könnte?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Darstellung flackert

  Alt 28. Okt 2015, 11:25
Ersetze testhalber mal das TLabel mit einen TPanel gleicher Größe.
Nur TPanel hat ja eine DoubleBuffered Eigenschaft.

Außerdem würde ich noch prüfen, ob sich wirklich was geändert hat (if alterWert <> neuerWert then...), sonst aktualisiert du die Beschriftung möglicherweise unnötig und es flackert zusätzlich (mehr).
  Mit Zitat antworten Zitat
Benutzerbild von Roadmap
Roadmap

Registriert seit: 28. Mai 2004
Ort: Sonthofen, Oberallgäu
16 Beiträge
 
Delphi 7 Architect
 
#3

AW: Darstellung flackert

  Alt 28. Okt 2015, 11:46
Poste bitte mal das Manifest, evtl. liegt der "Hund" da begraben!

Ich hatte sowas mal in meiner D7 Applikation.
--
Geht nicht gibt's nicht, geht schwer gibt's schon!
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Darstellung flackert

  Alt 28. Okt 2015, 11:58
Ersetze testhalber mal das TLabel mit einen TPanel gleicher Größe.
Nur TPanel hat ja eine DoubleBuffered Eigenschaft.
wäre noch eine Möglichkeit, da das Form.doublebuffered die genannten Effekte zeigt.

Außerdem würde ich noch prüfen, ob sich wirklich was geändert hat (if alterWert <> neuerWert then...), sonst aktualisiert du die Beschriftung möglicherweise unnötig und es flackert zusätzlich (mehr).
Das zumindest kann ich definitiv ausschließen, PostMessage bekommt immer unterschiedliche Werte.

Poste bitte mal das Manifest, evtl. liegt der "Hund" da begraben!
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    version="1.0.0.0"
    name="Private.Unknown.chk_epoline"
    type="*"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    </application>
  </compatibility>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
</assembly>
(Das hab ich mit dem Manifest-Creator erstellt)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 21:14 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