AGB  ·  Datenschutz  ·  Impressum  







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

Objekte "schnell" bewegen

Ein Thema von Delphi-Narr · begonnen am 19. Mär 2011 · letzter Beitrag vom 22. Mär 2011
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#1

Objekte "schnell" bewegen

  Alt 19. Mär 2011, 12:39
Delphi-Version: 6
Hallo,

ich bin dabei mir ein Programm mit mehreren, den Bildschirm füllenden Komponenten zu schreiben.
Um zwischen diesen Komponenten umzuschalten, möchte ich keine verschiedenen Formulare benutzen, sondern eine Art "Slice-Effekt" verwenden.

Dafür verwende ich im Moment einfach eine Schleife (Zum Testen eine For-Schleife, später wirds wohl eine while-Schleife).

Delphi-Quellcode:
for i:=0 to Screen.width do
begin
     Objekt1.left:=Objekt1.left-1
     Objekt2.left:=Objekt2.left-1;
     Objekt1.refresh;
     Objekt2.refresh;
end;
Ich habe es auch mal mit Application.processmessages versucht, doch leider auch ohne Besserung, denn die Bewegung soll relativ schnell sein (knapp 1 Sekunde), ist aber seeeehr langsam.

Ich habe auch mal 5 pixel Schritte probiert, es geht zwar schneller, ruckelt aber...

Wie kann ich das ändern?

Viele Grüße!
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Objekte "schnell" bewegen

  Alt 19. Mär 2011, 12:52
...
ich bin dabei mir ein Programm mit mehreren, den Bildschirm füllenden Komponenten zu schreiben.
Ich habe es auch mal mit Application.processmessages versucht, doch leider auch ohne Besserung, denn die Bewegung soll relativ schnell sein (knapp 1 Sekunde), ist aber seeeehr langsam.

Ich habe auch mal 5 pixel Schritte probiert, es geht zwar schneller, ruckelt aber...

Wie kann ich das ändern?

Viele Grüße!
Hast Du mal überlegt, bei einer Auflösung von H=1024,
nun von 0 to 1024 ein Objekt bewegen und neuzeichen, bleibt nun mal 1024durchläufe plus die Zeit des neuzeichnen. Wie schnell muss da ein Prozessor sein der das in < 1 sek macht
Ohne auf Direktx oder ander GEngine zu zugreifen dürfte dies wohl nicht gehen.

alfold
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Objekte "schnell" bewegen

  Alt 19. Mär 2011, 12:55
Vielleicht, wenn man nicht die Objekte selbst, sondern nur ein Abbild deren bewegt
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Objekte "schnell" bewegen

  Alt 19. Mär 2011, 13:02
Hallo,
danke für die schnelle Antwort.
Natürlich ist das ziemlich viel für eine Sekunde. Aber 20 Sekunden find ich ist auch etwas viel...
Außerdem liegt die Prozessorauslastung nicht bei 100%, sondern zwischen 50 und 70%.

Ich habe mir mal vor einiger Zeit zum Testen hier einen Code runtergeladen, wo mehrere Kugeln kollidieren und abprallen (Masse und Winkel berücksichtigt). Das läuft mit bis zu 100 Kugeln auch sehr flüssig...

Ich guck mal, wie das mit DirectX funktionieren könnte.

Viele Grüße!

@mkinzler: Könntest du das etwas näher beschreiben, bitte?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Objekte "schnell" bewegen

  Alt 19. Mär 2011, 13:52
Was sind das für Objekte?
Wenn es nur darum geht Beispielsweise mehrere PNG's zu animieren:
http://www.delphipraxis.net/156716-g...-und-zoom.html
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Objekte "schnell" bewegen

  Alt 19. Mär 2011, 13:59
Bisher ist es ein TImage (wird später ersetzt durch eine eigene Komponente, Tochterkomponente von TImage) und eine TLMDListBox.

Viele Grüße!

Edit:
Ich habe mal ein bisschen rumprobiert:
Wenn ich das Image mit gedrückter Maustaste verschieben lasse, geht das schnell und relativ flüssig...

Vielleicht noch zum allgemeinen Verständnis:
Das soll sowas wie horizontales Scrollen sein...

Geändert von Delphi-Narr (19. Mär 2011 um 14:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Objekte "schnell" bewegen

  Alt 19. Mär 2011, 14:23
wenn Du eh eine eigene Komponente erstellen willst, findest Du in o.G. Link vielleicht die eine oder andere Anregung (ich würde von TGraphicControl ableiten).
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#8

AW: Objekte "schnell" bewegen

  Alt 19. Mär 2011, 14:38
Ich möchte ja nur eine von mehreren erstellen...
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Objekte "schnell" bewegen

  Alt 19. Mär 2011, 14:46
Hallo,

schau dir doch mal AnimateWindow an.
Habs mit einem Memo getestet - geht wunderbar.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  AnimateWindow(Memo1.Handle, 200, AW_BLEND or AW_HIDE);
end;
[Edit]
Mist - geht doch nicht!
Wirkt wie ein Memo1.Hide - egal welche Zeit angegeben wird.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#10

AW: Objekte "schnell" bewegen

  Alt 19. Mär 2011, 16:00
Hallo,

ja ich habs auch ausprobiert. Ich möchte es aber auch nicht ausblenden, sondern verschieben...
Also eher AW_SLIDE?!
Problem 2:
TImage hat kein Handle...

Viele Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 15:29 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