AGB  ·  Datenschutz  ·  Impressum  







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

Application.Icon setzen

Ein Thema von freimatz · begonnen am 6. Apr 2018 · letzter Beitrag vom 9. Apr 2018
Antwort Antwort
Seite 3 von 4     123 4      
freimatz

Registriert seit: 20. Mai 2010
1.442 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: Application.Icon setzen

  Alt 9. Apr 2018, 19:55
Hallo,
also erstmal - ich habe eine Lösung:
Delphi-Quellcode:
procedure DoIcon();
var
  h : hIcon;
begin
  h := LoadIcon(hInstance, 'MAINICON');
  Application.Icon.Handle := h;
  InvalidateRect(Application.Handle, nil, true);
end;

begin
  Application.Title := 'BalBlaBla';
  DoIcon();
  Application.Initialize;
  SplashFormCreate('',false);
  Application.ProcessMessages();
  ...
An sich fehlte gegenüber vorigen Versuchen nur ein "Application.ProcessMessages();"

500.000 Zeilen? Respekt. Nur baut man Splash Screens nicht eher beim Start des Programms ein?
Das Einbauen und die zeitliche Abfolge ist nicht unbedingt abhängig. Etliche units haben einen initialization Abschnitt und vor allem bei Fremdkomponenten habe ich da nicht den Überblick.

Zwischen Programmstart und bis das Hauptfenster fertig ist können schon mal 10 Sekunden vergehen.
Application.MainFormOnTaskbar ist von Beginn an False; ob das später noch mal auf True geht habe ich nicht untersucht. Das Hauptfenster setzt später auch nochmal das Icon (je nach Konfiguration unterschiedliche)

Mein Splash ist nicht ausschaltbar; andererseits ist er auch nicht fsStayOnTop so dass man noch was anders tun kann.

Danke für alle Beiträge.
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#22

AW: Application.Icon setzen

  Alt 9. Apr 2018, 20:05
Solange der Splash-Screen nur für die Dauer des Programmstarts angezeigt wird, wenn auch wirklich was geladen/initialisiert wird, ist doch alles OK. Nag-Screen kann man das nicht nennen.
Sonst wäre der Photoshop-Splash-Screen ja auch ein Nag-Screen.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: Application.Icon setzen

  Alt 9. Apr 2018, 20:07
So sollts auch gehen um Code kurz zu halten.
Delphi-Quellcode:
procedure DoIcon();
begin
  Application.Icon.Handle := LoadIcon(hInstance, 'MAINICON');
  InvalidateRect(Application.Handle, nil, true);
end;
Sonst müsstest Du irgendwo das "h" wieder freigeben, oder?
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 9. Apr 2018 um 20:12 Uhr)
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#24

AW: Application.Icon setzen

  Alt 9. Apr 2018, 20:12
Programmierung Lehrjahr 1: Zwischenvariablen, wenn möglich, immer vermeiden. Besonders bei Blöcken <= 10 Zeilen.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Application.Icon setzen

  Alt 9. Apr 2018, 20:29
In der Entstehung nutz ich erstmal viele Variablen um halt Feedback auswerten zu können, die kommen alle schön brav in eine {$IFNDEF DEPLOY} rein um automatisch bei {$DEFINE DEPLOY} ignoriert/übersprungen zu werden.

Als Beispiel dient mir obiger Source:
Delphi-Quellcode:
{.$DEFINE DEPLOY} // Wenn der Punkt entfernt wird, ist's aktiv

procedure DoIcon();
{$IFNDEF DEPLOY}
var
  h : hIcon;
{$ENDIF DEPLOY}
begin
{$IFNDEF DEPLOY}
  h := LoadIcon(hInstance, 'MAINICON');
  Application.Icon.Handle := h;
{$ELSE DEPLOY}
  Application.Icon.Handle := LoadIcon(hInstance, 'MAINICON');
{$ENDIF DEPLOY}
  InvalidateRect(Application.Handle, nil, true);
end;
Habs grad nur so hingekritzelt, korrektheit könnt falsch sein.
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 9. Apr 2018 um 20:39 Uhr)
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#26

AW: Application.Icon setzen

  Alt 9. Apr 2018, 20:42
Sieht schwer noch nahezu doppeltem und unheimlich schwer wartbarem Code aus wenn es dann mal tausende Zeilen sind die man so schreibt.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.442 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: Application.Icon setzen

  Alt 9. Apr 2018, 20:45
Programmierung Lehrjahr 1: Zwischenvariablen, wenn möglich, immer vermeiden. Besonders bei Blöcken <= 10 Zeilen.

Programmierung Lehre -> diese Schule meiden.

Ok - schöner Code ist meiner auch nicht. Aber da mache ich erst wieder rum wenn das Produkt raus ist und das ist Donnerstag.

@KodeZwerg: was soll das bringen? Macht es doch nur extrem unleserlich. Der Compiler optimiert das doch eh weg.
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#28

AW: Application.Icon setzen

  Alt 9. Apr 2018, 20:49
Zitat:
Programmierung Lehre -> diese Schule meiden.
Wird zwar jetzt ein Streitthema, aber das sehe ich anders. Wo man Zwischenvariablen meiden KANN, sollte man das tun. Für drei Zeilen Code braucht meine keine Zwischenvariable. Auch wenns zwei, drei Zeilen mehr sind nicht. Das bläht Code unnötig auf. Außerdem wird Code nicht zwangsläufig lesbarer, nur weil man 10 Zwischenvariablen nutzt.
Wenn man einen Wert in einem Code-Block x-mal benötigt ist das was anderes.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: Application.Icon setzen

  Alt 9. Apr 2018, 21:08
Das war halt nur ein Beispiel, jeder so wie er es mag.
Da ich mich an so eine Art der Programmierung gewöhnt habe, also das innerhalb bestimmter {$IF} Blöcke nur bestimmte Sachen beim Compilieren berücksichtigt werden, kann ich mich halt in den {$IFNDEF} Blöcken relativ frei austoben und in den {$IFDEF} oder {$ELSE} Blöcken halt Achten alles richtig zu machen.
Da es bei mir viele eigene Funktionen/Prozeduren gibt die ich halt in zwei Varianten brauche, einmal Testing einmal Release ohne jede Funktion/Prozedur doppelt haben zu müssen, nutze ich diese Möglichkeit.
Punkt entfernen = nur Release Code wird compiliert und das betrifft bei mir halt viele Aufrufe.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#30

AW: Application.Icon setzen

  Alt 9. Apr 2018, 22:23
Beim Debuggen kann man sich die Zwischenergebnisse ansehen. (OK, im Assembler, teilschritte in den überwachten Ausdrücke, Variable auswerten, ...)

Ich handhabe es so, dass der Splash-Screen für die Dauer angezeigt wird die es benötigt alle Formulare zu erzeugen
Warum überhaupt immer alles erstellen, anstatt es nur/erst dann, wenn es auch verwendet wird?

Vieles wird selten/fast nie verwendet, oder schaust du dir den Options- oder gar den Info-Dialog deines Delphi mehrmals täglich an?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 9. Apr 2018 um 22:25 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 05:10 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