Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objekte "schnell" bewegen (https://www.delphipraxis.net/159239-objekte-schnell-bewegen.html)

Delphi-Narr 20. Mär 2011 20:21

AW: Objekte "schnell" bewegen
 
Wenn aber während des Scrollens z.B. eine Zeile in der ListBox dazu kommt, muss ich wieder einen neuen Screenshot machen. Also vorher wieder einblenden, Screenshot, ausblenden, verschieben und zeichnen...
Macht das dann noch Sinn? Dann würde ja eigentlich ein Flackern entstehen (Durch das ständige ein- und ausblenden) und so ein Screenshot ist ja eigentlich auch nichts anderes.

Naja, die 1 Sekunde Verzögerung werd ich wohl überleben ;)

Ich werd' das mal versuchen.

Viele Grüße und Danke für die vielen Antworten!

mkinzler 20. Mär 2011 20:28

AW: Objekte "schnell" bewegen
 
Eine weitere Option wäre es Komponenten, wie VGScene oder DXScene zu verwenden, die lassen sich leicht Verschieben/Skalieren usw. KSDev wurde aber von Embarcadero aufgekauft und die Komponenten erstmal vom Markt genommen
http://www.ksdev.com/forums/viewtopic.php?f=4&t=986

QuickAndDirty 21. Mär 2011 10:20

AW: Objekte "schnell" bewegen
 
Ich würde das Canvas der Form in ein Bitmap Objekt speichern.
Alle Objekte auf der Form unsichtbar machen und dann das ganze Bildraus rollen lassen.

Bleibt noch die frage ob du von den anderen Komponenten (also die die reinrollen ) vor ab einen Screen bekommst.... :(

Für kleine Animationen reicht BitBlt oder die selbe Funktion aus der GDI+
für mehr Leistung müsste man dann wohl auf etwas "Richtiges" setzen.

Bummi 21. Mär 2011 10:48

AW: Objekte "schnell" bewegen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bin nicht sicher ob ich verstanden habe was Du genau suchst, etwas in der Art?
Ganz schnell und billig, besser geht in jedem Fall ...

Delphi-Narr 21. Mär 2011 14:07

AW: Objekte "schnell" bewegen
 
Zitat:

Zitat von Bummi (Beitrag 1089996)
Ich bin nicht sicher ob ich verstanden habe was Du genau suchst, etwas in der Art?
Ganz schnell und billig, besser geht in jedem Fall ...

Hallo,

vom Pronzip her genau, was ich brauche - danke für das Beispiel!!
Frage ist nur, ob das auch ohne zweite Form geht?

Wenn ich das Formular wie es ist auf ein unsichtbares Canvas sicher, dann alles ausblende und zeichne und später wieder einblende, dann müsste das doch klappen...
Dann könnte ich mit CopyRect das Ganze aufs Form malen und verschieben.
Ist denn dann auch das im unsichtbaren Canvas, was außerhalb des Bildschirms ist?


Viele Grüße!

Bummi 21. Mär 2011 14:57

AW: Objekte "schnell" bewegen
 
Versuch macht kluch ...
Es sind diverse Varianten, eine denkbare wäre auch nach der Animation auf einem leeren Mainform das 2. Form zu docken, also
Delphi-Quellcode:
Form2.BorderStyle := bsNone;
Form2.Align := alClient;
Form2.Parent := Mainform;
Form2.Show;
verwende ich aus anderen Gründen in ähnlicher Form ständig, o.g. Aktionen sind allerdings in der Form2 Basisiklasse schon parametrisierbar implementiert.

QuickAndDirty 21. Mär 2011 16:23

AW: Objekte "schnell" bewegen
 
Ich finde es gut das der TE sich überhaupt Gedanken um Animation macht. Animationen richtig eingesetzt erhöhen die Benutzerfreundlichkeit eines Programms ungemein. Finde Idee mit dem ausfliegen und einfliegen der Komponenten ziemlich gut. Denn für das Menschliche Gehirn ist es anstrengend mit dingen klar zukommen die auf einmal übergangslos erscheinen oder verschwinden...sowas passiert in der Natur einfach kaum...am Monitor aber die ganze Zeit. Es trägt auch deutlich zur Ermüdung des Users bei.


So let the Pixels Fly
http://www.bitsandbuzz.com/article/flying-pixels/

Delphi-Narr 21. Mär 2011 19:04

AW: Objekte "schnell" bewegen
 
Hallo,

ich sehe schon, dass das nicht so einfach ist, wie ich es mir erhofft habe. Die Lösung von Bummi wäre zwar vom Prinzip her das richtige, Doch es sollen ja nur die Hauptkontrollen verschoben werden, nicht die Buttons oben und unten. Außerdem gibt es ein Hintergrundbild, welches auch einige Schwierigkeiten macht...
Ich bin dabei, die Komponenten direkt über PaintTo anzusprechen, anstatt die Form.

Nur als Alternative:
Gibt es eine Möglichkeit, die Komponenten einfach sanft auszublenden und dann die andere einzublenden?

Viele Grüße!

WM_CLOSE 21. Mär 2011 19:10

AW: Objekte "schnell" bewegen
 
manche controls haben die eigenschaft
Delphi-Quellcode:
Alphablend
. Andere WinControls könnte man per API zum selben bewegen. Beim Formular klappt das ganz gut.

Delphi-Narr 21. Mär 2011 19:22

AW: Objekte "schnell" bewegen
 
Schon, aber irgendwie klappt das bei mir nicht.
Ich habe mir die LMD-Freewarekomponenten runtergeladen. Die sollten ja zumindest Transparenz können - klappt bei mir nicht :(

Bei Delphi 5 gabs das noch nicht mit AlphaBlend - Delphi 6 hat das, doch bei Delphi 5 hab ich das auch mit dem Formular hingekriegt.
Doch die Prozedur klappt leider nicht mit einem anderen Handle ...

Viele Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr.
Seite 3 von 4     123 4      

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