AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi "anzeigeunterbrechung" in paintbox verbessern?!?

"anzeigeunterbrechung" in paintbox verbessern?!?

Ein Thema von heiopei · begonnen am 24. Jul 2005 · letzter Beitrag vom 24. Jul 2005
Antwort Antwort
heiopei
(Gast)

n/a Beiträge
 
#1

"anzeigeunterbrechung" in paintbox verbessern?!?

  Alt 24. Jul 2005, 14:21
hallo,
hab folgendes problem:
in einer paintbox wird alle 33ms eine zeichnung aktuallisiert. allerdings wird die darstellung kurz unterbrochen, wenn ich z.b. auf die titelleiste klicke (und drauf bleibe).
wie kann ich das verhindern?
--> soll ich was anderes als paintbox verwenden (image dauert von haus aus zu lang beim zeichnen (33ms))
--> hab jetzt schon die timer-komponente ersetzt durch die tmmtimer-komponente, die im delphi 6 kochbuch
beschrieben wird (soll angeblich viel genauer sein...)
--> ist da vielleicht n thread angebracht (wüsste nicht wie )

naja, vielleicht hat ja noch jemand andere vorschläge

mfg
heiopei
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: "anzeigeunterbrechung" in paintbox verbessern?

  Alt 24. Jul 2005, 14:33
hi,

wenn du dein form verschieben willst, wird alles kurzzeitig aussetzen (innerhalb des prozesses). da hilft eben nur ein zweiter thread. aber ich glaube, dass du selbst dann noch den "fehler" bemerken wirst, da das zeichnen ja so oder so kurzzeitig unterbrochen wird.

aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
heiopei
(Gast)

n/a Beiträge
 
#3

Re: "anzeigeunterbrechung" in paintbox verbessern?

  Alt 24. Jul 2005, 14:40
und wie soll ich dann den zweiten thread erstellen können (muss ja ne schleife sein, bzw. n eigener thread für den timer)?
hab so was noch nie gemacht!

mfg
heiopei
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: "anzeigeunterbrechung" in paintbox verbessern?

  Alt 24. Jul 2005, 15:18
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    ...

  TDingsThread = class(TThread)
  private
    FParameter: Integer;
  protected
    procedure Execute; override;
  public
    constructor Create(Parameter: Integer);
  end;

var
  Form1: TForm1;
  MyDings: TDingsThread;

implementation

{$R *.dfm}

constructor TDingsThread.Create(Parameter: Integer);
begin
  inherited Create(true); // Create thread as suspended
  FreeOnTerminate := True; // Yes
  Priority := tpNormal; // the priority
  FParameter := Parameter;
  Resume; // Start the thread
end;

procedure TDingsThread.Execute;
begin
  // Irgendetwas := //Parameter;
  while not Terminated do
  begin
    With Form1.PaintBox1 do
    begin
      Canvas.Lock;
      Canvas.Pen.Color := RGB(Random(255), Random(255), Random(255));
      Canvas.Brush.Color := RGB(Random(255), Random(255), Random(255));
      Canvas.Ellipse(Random(Width), Random(Height),
        Random(Width), Random(Height));
      Canvas.Unlock;
    end;
    if not Terminated then Sleep(33);
  end;
end;

// ----------------------------------------------------------------------

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyDings := TDingsThread.Create(0);
end;
So könnte ich mir das Vorstellen. Bin mir aber nicht 100 % sicher.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf