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 2 von 4     12 34      
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#11

AW: Application.Icon setzen

  Alt 7. Apr 2018, 11:17
Ungetestet als Idee hingedaddelt:
Delphi-Quellcode:
Icon := TIcon.Create;
st := TMemoryStream.Create;
try
  SplashForm.cxImageListMainIcon.GetIcon(0, Icon);
  Icon.SaveToStream(st);
  Application.Icon.LoadFromStream(st);
finally
  st.Free;
  Icon.Free;
end;
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
153 Beiträge
 
#12

AW: Application.Icon setzen

  Alt 7. Apr 2018, 19:58
@freimatz

Kann es sein, das du das etwas kompliziert machst? Warum kopierst du soviel herum? Wenn du ein Icon hast, dann übergibt Application die Adresse und gut ist es. Das habe ich auf die Schnelle gemacht. Ich habe auf dem Formular eine TImage abgelegt, ein Icon rein geladen, und es übergeben. Funktioniert.

Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas{Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);

  Application.Title := 'Dies und Das';
  //Application.Icon.Handle := Form1.Image1.Picture.Icon.Handle; //Funktioniert
  //Application.Icon := Form1.Image1.Picture.Icon; //Funktioniert
  Application.Icon := Form1.Icon; //Funktioniert

  Application.Run;
  Application.Icon.Assign(Icon);
end.
Dann habe ich noch zwei andere versuche unternommen. Funktionieren auch.

Hier ein anderes Beispiel, mal schnell ein Splashscreen eingebaut (Form2)

Delphi-Quellcode:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas{Form1},
  Unit2 in 'Unit2.pas{Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);

  Application.Title := 'Dies und Das';
  Application.Icon := Form2.Icon;
  Form2.ShowModal; // Nach 2 Sekunden schließt sich Form2 selbst.
  Application.Icon := Form1.Icon;

  Application.Run;
end.
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm2 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Timer1Timer(Sender: TObject);
begin
  if Timer1.Tag = 2000 then
    Close;

  Timer1.Tag := Timer1.Tag + Timer1.Interval;
end;

end.
Nach 2 Sekunden wechselt das Icon erneut.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.380 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Application.Icon setzen

  Alt 9. Apr 2018, 11:30
Kann es sein, das du das etwas kompliziert machst? Warum kopierst du soviel herum? Wenn du ein Icon hast, dann übergibt Application die Adresse und gut ist es.
Nein es ist nicht gut, zumindest bei mir. Ich glaube ja gerne, dass das bei dir funktioniert. Auch nehme ich an, dass es auch bei mir funktioniert, wenn ich ein neues Projekt mit deinem Code mache.
Leider habe ich noch mehr als 500.000 andere Zeilen Code die halt auch im Projekt drin sein müssen sonst werden manche Leute unzufrieden
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#14

AW: Application.Icon setzen

  Alt 9. Apr 2018, 11:36
Wieso beeinflussen die anderen 500.000 Zeilen denn Application.Icon?
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.380 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Application.Icon setzen

  Alt 9. Apr 2018, 11:52
Tja, wenn ich das wüsste ...
Wie geschrieben habe ich DevExpress im Verdacht. Die hooken sich ins System rein. Allerdings hatte ich noch keine Zeit das näher zu untersuchen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Application.Icon setzen

  Alt 9. Apr 2018, 11:57
In aktuellen Delphis ist standardmäßig nicht das Application.Icon in der Taskleiste zu sehn, sondern Application.MainForm.Icon, denn Delphi-Referenz durchsuchenMainFormOnTaskbar.

Du könntest beim Programmstart MainFormOnTaskbar umstellen, aber anschließend sollte es besser immer auf True stehen, denn in Bezug auf Aero Peek und das Kontextmenü des Taskbuttons hat es einen großen Einfluss.
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 12:01 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.380 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Application.Icon setzen

  Alt 9. Apr 2018, 12:36
Ah danke. Das hatte ich noch nicht "auf dem Schirm". Werde das untersuchen.
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
153 Beiträge
 
#18

AW: Application.Icon setzen

  Alt 9. Apr 2018, 17:12
Leider habe ich noch mehr als 500.000 andere Zeilen Code die halt auch im Projekt drin sein müssen sonst werden manche Leute unzufrieden
500.000 Zeilen? Respekt. Nur baut man Splash Screens nicht eher beim Start des Programms ein?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Application.Icon setzen

  Alt 9. Apr 2018, 17:39
Nur baut man Splash Screens nicht eher beim Start des Programms ein?
Umd den Benutzer maximal zu nerven und zum Kauf zu nötigen, sollte man den auch mittendrin alle 5 Minuten aufspringen lassen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#20

AW: Application.Icon setzen

  Alt 9. Apr 2018, 17:40
Ich handhabe es so, dass der Splash-Screen für die Dauer angezeigt wird die es benötigt alle Formulare zu erzeugen + 500 Millisekunden.
Natürlich ist er ausschaltbar.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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:06 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