Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Wait Animation (https://www.delphipraxis.net/192029-wait-animation.html)

Ghostwalker 17. Mär 2017 10:42

AW: Wait Animation
 
Liste der Anhänge anzeigen (Anzahl: 1)
Und hier schon mal eine Runde von mir :)

Ich musste zwar umstellen auf die Ansi-Api, weil mein System zu alt ist. Aber funktioniert soweit :)

EWeiss 17. Mär 2017 10:43

AW: Wait Animation
 
Zitat:

Zitat von Ghostwalker (Beitrag 1364483)
Und hier schon mal eine Runde von mir :)

Ich musste zwar umstellen auf die Ansi-Api, weil mein System zu alt ist. Aber funktioniert soweit :)

Lechs direkt mal testen.

gruss

EWeiss 17. Mär 2017 10:53

AW: Wait Animation
 
Ok Vom Stream funktioniert nicht.
Muss es mal nach D2010 umlegen weil die Komponenten TntStdCtrls, TntDialogs nicht vorhanden sind.
Kann es so nicht debuggen.

gruss

Ghostwalker 17. Mär 2017 10:59

AW: Wait Animation
 
Ja, wie gesagt ich muß noch den Umweg über TNT gehen. D2010 und XP mögen sich nicht wirklich :)

(Aber Rettung ist in Sicht)

EWeiss 17. Mär 2017 11:13

AW: Wait Animation
 
Zitat:

Zitat von Ghostwalker (Beitrag 1364490)
Ja, wie gesagt ich muß noch den Umweg über TNT gehen. D2010 und XP mögen sich nicht wirklich :)

OK ;)

Zitat:

(Aber Rettung ist in Sicht)
Was meinst du meine Änderungen oder deine?

EDIT:
Ok vom Stream funktioniert wenn in der Ressource der Eagle eingebaut ist.

gruss

EWeiss 17. Mär 2017 12:07

AW: Wait Animation
 
Habe die Komponente nach D2010 umgeändert und zum ersten Post addiert.

gruss

Ghostwalker 17. Mär 2017 12:26

AW: Wait Animation
 
:thumb:

EWeiss 17. Mär 2017 12:58

AW: Wait Animation
 
Zitat:

Zitat von Ghostwalker (Beitrag 1364507)
:thumb:

Danke für deine Mithilfe denke sollte jetzt komplett sein :)

gruss

HolgerX 17. Mär 2017 14:07

AW: Wait Animation
 
Hmm..

Habe mir das Demo angesehen..
(ohne Src anzuschauen)

Was mir nur aufgefallen ist, dass der Spinner immer an der Stelle auf dem Bildschirm verbleibt, an welcher er gestartet wurde.

Verschiebt man nun das Fenster der Applikation oder minimized es, bleibt der Spinner stehen.

Vielleicht gibt es ja eine Möglichkeit das der Spinner mitgeht.

Und eventuell Transparenz? ;)

(alles nur Ideen.. ;) )

EWeiss 17. Mär 2017 14:14

AW: Wait Animation
 
Zitat:

Was mir nur aufgefallen ist, dass der Spinner immer an der Stelle auf dem Bildschirm verbleibt, an welcher er gestartet wurde.
Ja es ist eine Wait Animation.
Und diese wird zentriert über das Parent Fenster gesetzt.

Es ist nicht vorgesehen das die Animation mitgeht.
Ich glaube nicht das wenn eine Anwendung bei verschiedenen Prozessen ausgelastet ist der User sein Window Verschieben will.
Das Sample ist ja nicht maßgeblich da hier die Animation nur gestartet und beendet wird.

Bsp.
Ich starte eine Anwendung die beim initialisieren ein liste mit mehr als 5000 Einträge lädt.
Delphi-Quellcode:
function TPlayList.LoadM3UFile(Filename: String): Boolean;
var
  F: TextFile;
  Buffer, iTime, sFilename, sParse: string;
  k, iPos1, iPos2: Integer;
begin
  Spinner := CTRL_SpinnerCreate;
  SpinnerHandle := Spinner.CreateWindow(MainHandle);
  SpinnerFile := SKAERO_FOLDER + 'Spinner.png';
  Spinner.Start(MainHandle, SpinnerHandle, SpinnerFile, 30);

  AssignFile(F, Filename);
  Reset(F);
  PlayListCount := 0;
  while not Eof(F) do
  begin
    ReadLn(F, Buffer);
    if Buffer = '#EXTM3U' then
      Continue;

    ReadLn(F, sFilename);
    LVPlayList.SetSysItemIcon(PlayListCount, 2, sFilename);

    if Pos('#EXTINF', Buffer) > 0 then
    begin
      LVPlayList.InsertItem(LVPlayList.Handle, PlayListCount, IntToStr(PlayListCount + 1));
      iPos1 := Pos(':', Buffer);
      iPos2 := Pos('|', Buffer);

      iTime := Copy(Buffer, iPos1 + 1, iPos2 - iPos1 - 1);
      LVPlayList.SetItemText(LVPlayList.Handle, PlayListCount, 1, iTime);

      for k := 0 to 2 do
      begin
       sParse := ParseThis(Buffer, '|', K + 1);
       case K of
         0:
           LVPlayList.SetItemText(LVPlayList.Handle, PlayListCount, 2, sParse);
         1:
           LVPlayList.SetItemText(LVPlayList.Handle, PlayListCount, 3, sParse);
         2:
           LVPlayList.SetItemText(LVPlayList.Handle, PlayListCount, 4, sParse);
       end;
      end;
      LVPlayList.SetItemText(LVPlayList.Handle, PlayListCount, 5, sFilename);

      Inc(PlayListCount);
    end
    else
    begin
      if ExtractFilePath(Buffer) = '' then
        FFile.Add(ExtractFilePath(Filename) + Buffer)
      else
        FFile.Add(Buffer);

      FTitle.Add(Buffer);
      FTime.Add('');
    end;
  end;
  CloseFile(F);

  LVPlayList.SetColAutoSize(LVPlayList.Handle, 2);
  LVPlayList.SetColAutoSize(LVPlayList.Handle, 3);
  LVPlayList.SetColAutoSizeUseHeader(LVPlayList.Handle, 4);

  if (PlayListCount > 0) then
    MainApp.PlayListPlay(LVPlayList.Handle, PlayListCount);

  Result := True;
end;
Dann starte ich den Spinner.
Nach dem laden wenn das Fenster angezeigt wird beendet sich dieser.
Also ein Fenster ist in dem Fall gar nicht sichtbar wenn die Animation startet.

Delphi-Quellcode:
      MainInit := TRUE;

      if SpinnerHandle <> 0 then
        SpinnerHandle := Spinner.Stop;

      while GetMessage(Msg, 0, 0, 0) do
      begin
        if IsDialogMessage(MainApp.Handle, Msg) = False then
        begin
          TranslateMessage(Msg);
          DispatchMessage(Msg);
        end;
      end;
Zitat:

Und eventuell Transparenz?
Welche Transparenz?

Die Animationen sind Transparent dazu verwende ich die DWM.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 Uhr.
Seite 4 von 5   « Erste     234 5      

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