AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Icon aus Ressource

Ein Thema von ManuMF · begonnen am 6. Jan 2006 · letzter Beitrag vom 7. Jan 2006
Antwort Antwort
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#1

Problem mit Icon aus Ressource

  Alt 6. Jan 2006, 23:20
Hallo,

ich möchte ein zusätzliches Icon in mein Programm einbinden, um es für eine Verknüpfung und - hier liegt das Problem - für ein Formular zu nutzen. Ich habe 3 Möglichkeiten probiert.

RC-Datei, Delphi-Code, Fehler

Möglichkeit 1
9 ICON "Zahnrad.ico"
Delphi-Quellcode:
var ResIco : TResourceStream;

begin
  ResIco := TResourceStream.CreateFromID(hInstance, 9, 'ICON');
  try
    Icon.LoadFromStream(ResIco);
  finally
    FreeAndNil(ResIco);
  end;
Zuriffsverletzung

Möglichkeit 2 (RT_ICON = vordefiniert)
9 RT_ICON "Zahnrad.ico"
Delphi-Quellcode:
var ResIco : TResourceStream;

begin
  ResIco := TResourceStream.CreateFromID(hInstance, 9, 'RT_ICON');
  try
    Icon.LoadFromStream(ResIco);
  finally
    FreeAndNil(ResIco);
  end;
kein Fehler, Icon wird im Formular angezeigt, ist aber für die Verknüpfung nicht zu sehen, als wäre es nicht da.

Möglichkeit 3
ZrI ICON "Zahnrad.ico"
Delphi-Quellcode:
var ResIco : TResourceStream;

begin
  ResIco := TResourceStream.Create(hInstance, 'ZrI', 'ICON');
  try
    Icon.LoadFromStream(ResIco);
  finally
    FreeAndNil(ResIco);
  end;
"Ressource 'ZrI' wurde nicht gefunden

Ich hoffe, jemand kann die "2 Bedingungen" unter einen Hut bringen

Danke,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit Icon aus Ressource

  Alt 6. Jan 2006, 23:40
ich hab grad probiert und glaube den Fehler gefunden zu haben. Wenn die rc-Datei so aussieht:
Code:
ZrI ICON "Icon1.ico"
so zeigt mein Ressourcenhacker als Typ "Icon" an und nicht "ICON"
wenn die RC-Datei hingegen so aussieht:
Code:
ZrI ICON2 "Icon1.ico"
so zeigt der Ressorucenhacker als Typ "ICON2" an.

Da ICON also ein resserviertes Wort ist wird das ganze nicht unbedingt als "ICON" eingebunden. Bei Verwendung des Types "ICON" wird sogar geprüft vom Ressourcencompiler ob es sich um eine gültige Icon-Datei handelt.

Folgendes sollte also bei dir funktionieren:
Code:
ZrI ICON "Zahnrad.ico"
Delphi-Quellcode:
var ResIco : TResourceStream;

begin
  ResIco := TResourceStream.Create(hInstance, 'ZrI', 'Icon');
  try
    Icon.LoadFromStream(ResIco);
  finally
    FreeAndNil(ResIco);
  end;
anstelle von "Icon" ist es jedoch besser die constante zu nutzen RT_ICON zu verwenden.
Delphi-Quellcode:
var ResIco : TResourceStream;

begin
  ResIco := TResourceStream.Create(hInstance, 'ZrI', RT_ICON);
  try
    Icon.LoadFromStream(ResIco);
  finally
    FreeAndNil(ResIco);
  end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#3

Re: Problem mit Icon aus Ressource

  Alt 6. Jan 2006, 23:45
Hallo,

wenn ich diesen Code verwende, funktioniert es ja nicht (Möglichkeit 3).

Die Ergänzung mit RT_ICON funktioniert auch nicht, dann habe ich das Icon nicht als Symbol für eine Verknüpfung.

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Problem mit Icon aus Ressource

  Alt 7. Jan 2006, 00:02
Ich bin ja sooo toll
Du musst als Typ: RT_GROUP_ICON verwenden (im Delphi-Quelltext)

Hab es gefunden als ich in der Hilfe bei "FindResource" mir mal die typen angesehen hab auf der Suche nach einem IconTyp. Und bei RT_ICON stand Hardware-dependent. Also hab ich nach einer Icon-Konstanten gesucht wo "Hardware-independent" steht. Und siehe da. Direkt über der Konstanten RT_ICON fand ich RT_GROUP_ICON
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#5

Re: Problem mit Icon aus Ressource

  Alt 7. Jan 2006, 00:18
Hallo,

Zitat von SirThornberry:
Ich bin ja sooo toll
Das bezweifle ich nicht, denn es kommt keine Fehlermeldung.

Aber statt des Icons im Formular nur ein 16x16 schwarzes Quadrat...

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Problem mit Icon aus Ressource

  Alt 7. Jan 2006, 00:37
so, das ganze geht viel einfacher:
Self.Icon.Handle := LoadIcon(HInstance, 'ZrI'); und schon hat dein Fenster ein anderes Icon.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#7

Re: Problem mit Icon aus Ressource

  Alt 7. Jan 2006, 00:47
Hallo,

Danke! Endlich klappt es...

Das hilft mir, 4KB einzusparen. Nein, im Ernst, ich möchte es ja für die Zukunft wissen, wenn ich mal wesentlich mehr Icons zu laden haben sollte...

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Antwort Antwort


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