Einzelnen Beitrag anzeigen

Benutzerbild von Amnon82
Amnon82

Registriert seit: 5. Jan 2005
186 Beiträge
 
FreePascal / Lazarus
 
#2

Logo für den Splash von Delphi 2005

  Alt 29. Mai 2006, 18:29
Ihr könnt auch ein Logo in den Splash von Delphi 2005 setzen.
Somit können die User Euer Plugin leichter erkennen.

Dazu braucht Ihr eine Bitmap.

Die sollte 32x32 Pixel groß sein und kann 16,7 Mil. Farben haben.

Erstellt eine .rc-Datei mit folgendem Inhalt:

Code:
LOGO bitmap "NamedesBildes.bmp"
Diese könnt Ihr dann mit der brcc32.exe durch den Befehl "brcc32.exe LOGO.rc" zu einer Resource umwandlen.

Öffnet Euer Projekt und fügt die Resource hinzu.

Delphi-Quellcode:
implementation

{$R *.DFM}
{$R Logo.res}
Fügt folgende Variablen zu den globalen Variablen hinzu:

Delphi-Quellcode:
sPluginName: string;
lBitmap: Graphics.TBitmap;
Den Punkt "procedure Register;" ändert Ihr wie folgt ab:

Delphi-Quellcode:
procedure Register;
begin
  sPluginName:='Name des Plugins';
  if SplashScreenServices <> nil then
  begin
    lBitmap := Graphics.TBitmap.Create;
    try
      lBitmap.LoadFromResourceName(hInstance, 'LOGO');
      SplashScreenServices.StatusMessage(sPluginName);
      SplashScreenServices.AddPluginBitmap(sPluginName, lBitmap.Handle);
    finally
      lBitmap.Free;
    end;
  end;
  RegisterPackageWizard(TWizard.Create);
end;
Falls Euch das Logo nicht lange genug angezeigt wird, könnt Ihr die Anzeigedauer mit folgendem Code verlängern (wodurch sich aber der Start von Delphi verzögern kann!):

Delphi-Quellcode:
procedure Delay(Milliseconds: Integer);
var
  Tick: DWord;
  Event: THandle;
begin
  Event := CreateEvent(nil, False, False, nil);
  try
    Tick := GetTickCount + DWord(Milliseconds);
    while (Milliseconds > 0) and
          (MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <> WAIT_TIMEOUT) do
    begin
      Application.ProcessMessages;
      if Application.Terminated then Exit;
      Milliseconds := Tick - GetTickcount;
    end;
  finally
    CloseHandle(Event);
  end;
end;
  Mit Zitat antworten Zitat