Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Progresbar zur Laufzeit zur Marquee ProgressBar machen? (https://www.delphipraxis.net/51913-progresbar-zur-laufzeit-zur-marquee-progressbar-machen.html)

Mazel 23. Jun 2007 07:39

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Guten Morgen,

ich wusste gar nicht dass man das auch mit den Delphi Komponenten machen kann. Sehr erfreulich für mich. Nun ist mir aber unter Delphi 7 aufgefallen, dass die Progressbar ein wenig flackert. Kann man das umgehen?

fwsp 23. Jun 2007 08:10

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Zitat:

Zitat von Mazel
Kann man das umgehen?

hilft das?
Delphi-Quellcode:
ProgressBar.DoubleBuffered := True;

Mazel 23. Jun 2007 09:11

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Ja, funktioniert, danke. Ich habe es vorher mit Form1.DoubleBuffered := True ausprobiert, aber das hat nicht geklappt. Müsste das aber nicht auch funktionieren?

LizardKaiser 23. Jun 2007 10:04

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Hi,

TProgressBar wrappt das Windows CommonControl ProgressBar, somit ist es von TWinControl abgeleitet, besitzt ein eigenes Handle und ist für sich selbst verantwortlich, was das zeichnen betrifft. - Also IMHO nein. Kann aber auch sein dass ich ganz deneben liege :roll:

Grüße, Lk

Helmi 23. Jun 2007 11:34

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Hallo,

gleich mal zuerst, ich schäme mich zutiefst :oops: :oops: :oops:

Aber ich muss es fragen, da ich momentan vor lauter Bäume keine Bäume mehr seh :oops: :oops: :oops:

Mit:
Delphi-Quellcode:
var
  cs:LongInt;
begin
  cs := GetWindowLong(ProgressBar1.Handle, GWL_STYLE);
  SetWindowLong(ProgressBar1.Handle, GWL_STYLE, cs Or PBS_MARQUEE);
schalt ich das Marquee für die Progressbar ein.

Nun dacht ich mir, mit
Delphi-Quellcode:
var
  cs:LongInt;
begin
  cs := GetWindowLong(ProgressBar1.Handle, GWL_STYLE);
  SetWindowLong(ProgressBar1.Handle, GWL_STYLE, cs XOR PBS_MARQUEE); //Änderung: XOR
schalt ich es wieder aus.

Stimmt das - ist das so richtig?

Mit so was hab ich immer mal wieder Probleme - sorry *schäm* :oops: :oops: :oops:

DeddyH 23. Jun 2007 11:36

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Mit xor switchst Du um (ein in aus und umgekehrt). Um zuverlässig auszuschalten, kannst Du and not nehmen.

Helmi 23. Jun 2007 11:44

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
wunderbar!

Danke für die Hilfe!

Cyberbob 8. Mär 2008 00:24

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Wenn ich in TurboDelphi2006 Explorer Progressbar1.DoubleBuffered := True; schreib, funktioniert der Marquee-Effekt nicht mehr, ohne das DoubleBuffered flackert die Progressbar allerdings, was kann ich tun?

Luckie 8. Mär 2008 00:34

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
Zitat:

Zitat von Cyberbob
Wenn ich in TurboDelphi2006 Explorer Progressbar1.DoubleBuffered := True; schreib, funktioniert der Marquee-Effekt nicht mehr, ohne das DoubleBuffered flackert die Progressbar allerdings, was kann ich tun?

Aktualisier sie nicht ständig. Zeig mal den entsprechenden Code.

Cyberbob 8. Mär 2008 00:56

Re: Progresbar zur Laufzeit zur Marquee ProgressBar machen?
 
nix. nur den code der oben steht. sonst ist das formular leer und im sonstigen programm befindet sich auch nicht mehr
aber hier mein code:

Delphi-Quellcode:
uses
  ..., xpman;

procedure TForm2.FormCreate(Sender: TObject);
const
  PBS_MARQUEE = $08;
  PBM_SETMARQUEE = WM_USER + 10;
var
  cs:LongInt;
begin
  cs := GetWindowLong(ProgressBar1.Handle, GWL_STYLE);
  SetWindowLong(ProgressBar1.Handle, GWL_STYLE, cs Or PBS_MARQUEE);
  SendMessage(ProgressBar1.Handle, PBM_SETMARQUEE, 1, 40);
  progressbar1.DoubleBuffered := True;
end;
ohne progressbar1.DoubleBuffered := True; läuft alles bestens


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.
Seite 2 von 3     12 3      

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