Splash Screen transparant?

Rund um die LCL und andere Komponenten

Re: Splash Screen transparant?

Beitragvon Mathias » 21. Apr 2018, 20:49 Re: Splash Screen transparant?

Und sobald die Main-App da ist wird ein Timer gestartet, dieser baut erst mal die Datenbankverbindung auf

Mit einem Timer ?
Oder lässt du den Splash mit dem Timer laufen ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon MmVisual » 21. Apr 2018, 21:26 Re: Splash Screen transparant?

Wenn ich die Datenbank im FormShow öffne, dann zeigt sich kein Formular, damit das Formular in jedem Fall kommt, muss die Datenbank gezielt verzögert verbunden werden, denn bei Netzwerkproblemen kann das schon mal ein paar Sekunden dauern (bis es fehl schlägt).

Nein, das Splash wird so gestartet wie ich zuvor schon geschrieben habe, also noch bevor das Main-Formular überhaupt im RAM aufgebaut wird.

Nun habe ich noch eine ProgressBar in mein Splash eingebaut, damit man sieht wie weit der schon ist :D
MmVisual
 
Beiträge: 996
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon Mathias » 27. Mai 2018, 17:01 Re: Splash Screen transparant?

Mathias hat geschrieben:
Nur die ASM/Intel Direktive geht beim Raspi natürlich nicht, das ist ja ein ARM. Ich habe diese Zeile einfach auskommentiert.

Damit konnte ich das Bitschieben beschleunigen, aber wie du schon sagst, nicht auf ARM.

Bei Intel gibt es den Rol und Ror Befehl, dieser ist fast gleich wie Shl und Shr, der Unterschied, das die Bits wie in einem Ring geschoben werden.
Dazu muss folgendes ersetzt werden.
Code: Alles auswählen
        asm rol bit, 1 end;
//        bit := (bit shl 1) or (bit shr 7);
 

Ein Nachtrag, ror und rol ist in FPC eingebaut, dies lässt sich sogar für den Raspi kompilieren (Crosss-Compiler).
Code: Alles auswählen
      if rev then begin
        bit := RolByte(bit);
//        bit := bit shl 1;
        if bit = 0 then begin
//          bit := 1;
          Inc(pz);
        end;
      end else begin
        bit := RorByte(bit);
//        bit := bit shr 1;
        if bit = 0 then begin
//          bit := 128;
          Inc(pz);
        end;
      end;


Als Test habe ich dies auf dem PC 1000x durchlaufen, dabei habe ich eine Optimierung:
259ms --> 217ms
Code: Alles auswählen
  for i := 0 to 999 do begin  // Als Test
    with Image1.Picture.Bitmap do begin
      for y := 0 to Height - 1 do begin
        CopyLine(y);
      end;
    end;
  end;
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon MmVisual » 27. Mai 2018, 18:27 Re: Splash Screen transparant?

Schön dass man Assembler Befehle auch direkt als Funktion nutzen kann :D

Aber "IF bit = 0 Then ..." muss dann anders heißen, sonst stimmt das Ergebnis von Deinem Test nicht.
MmVisual
 
Beiträge: 996
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon Mathias » 28. Mai 2018, 17:16 Re: Splash Screen transparant?

Schön dass man Assembler Befehle auch direkt als Funktion nutzen kann :D

Ich hatte auch lieber rol und ror gehabt, so wie es mit shr und shl ist.

Aber "IF bit = 0 Then ..." muss dann anders heißen, sonst stimmt das Ergebnis von Deinem Test nicht.

Dies wird für pz gebraucht.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon MmVisual » 28. Mai 2018, 17:50 Re: Splash Screen transparant?

Code: Alles auswählen
      if rev then begin
        bit := RolByte(bit);
//        bit := bit shl 1;
        if bit = 1 then begin
//          bit := 1;
          Inc(pz);
        end;
      end else begin
        bit := RorByte(bit);
//        bit := bit shr 1;
        if bit = 128 then begin
//          bit := 128;
          Inc(pz);
        end;
      end;
MmVisual
 
Beiträge: 996
Registriert: 10. Okt 2008, 22:54
OS, Lazarus, FPC: Winux (L 1.6 FPC 3) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon Mathias » 28. Mai 2018, 18:51 Re: Splash Screen transparant?

Dies habe ich übersehen. :oops:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •
Vorherige

Zurück zu Komponenten und Packages



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

porpoises-institution
accuracy-worried