AGB  ·  Datenschutz  ·  Impressum  







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

Icons "fransen" mit der Zeit aus?

Ein Thema von PeterPanino · begonnen am 1. Mär 2016 · letzter Beitrag vom 5. Mär 2016
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.545 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Icons "fransen" mit der Zeit aus?

  Alt 1. Mär 2016, 07:11
Keine Lösung, aber das Problem kenne ich auch mit FMX. Von Zeit zu Zeit muss ich die Images wieder neu in die Liste laden, dann geht es erst einmal wieder, trotzdem extrem nervig.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
madas

Registriert seit: 9. Aug 2007
207 Beiträge
 
#2

AW: Icons "fransen" mit der Zeit aus?

  Alt 1. Mär 2016, 07:40
Einfach die Images via res-Datei als Resource in eine DLL packen und dann an gewünschter Stelle im Programm in die ImageList laden.
DrawingStyle der ImageList auf dsTransparent setzen. Die Abmessungen der Bilder in der DLL sollten zu denen der ImageList passen.
Zum Erstellen der res-Datei verwenden wir den XN-Resource-Editor.

Projekt für die DLL erstellen mit einer pas-Datei, die alle Konstanten für die Namen der einzelnen Bilder pflegt
Code:
const
  RES_TOOLBAR_BTN_PNG = 'RESOURCE_IDENTIFIER'; // name des Bildes/der Resource in der DLL
  ...
und in der Projektdatei, diese pas-Datei und die res-Datei einbindet.

Code:
library imageContainingResource;

uses
  SysUtils,
  Classes,
  ToolbarImages in 'ToolbarImages.pas';

{$R imageContainingResource.res}
{$R ToolbarImages.res} //Datei mit Images

begin
end.
Und dann im eigentlichen Programm darauf zugreifen.

Code:
uses
  ..., ToolbarImages, ...

const
  TOOLBAR_IMG_RESOURCE_DLL = 'imageContainingResource.dll';

...

procedure LoadPNGFromResourceDll(png: TPNGObject; ResDll: string; const ResName: string);
var
  h: THandle;
begin
  h := 0;
  try
    h := LoadLibrary(PChar(ResDll));
    if (h <> 0) then
      png.LoadFromResourceName(h, ResName);
  finally
    FreeLibrary(h);
  end;
end;

...

procedure TFormTest.InitImgList;
var
  png: TPngImage;
  bmp: TBitmap;
begin
  png := TPngImage.Create;
  bmp := TBitmap.Create;
  try
    LoadPNGFromResourceDll(png, TOOLBAR_IMG_RESOURCE_DLL, RES_TOOLBAR_BTN_PNG);
    bmp.Assign(png);

    // Variante 1
    imgList.Add(bmp, nil);
    // Variante 2
    imgList.AddMasked(bmp, clWhite);

    png.Assign(nil);
    bmp.Assign(nil);
  finally
    bmp.Free;
    png.Free;
  end;
madas

Geändert von madas ( 1. Mär 2016 um 07:52 Uhr)
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Icons "fransen" mit der Zeit aus?

  Alt 1. Mär 2016, 08:56
Das hängt vermutlich damit zusammen, dass beim Öffnen eines Forms mit Bildern diese in der DFM fast jedesmal geändert werden. Ist bei Versionscontroll-Systemen sehr nervig.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Icons "fransen" mit der Zeit aus?

  Alt 1. Mär 2016, 09:19
TImageList (VCL) arbeitet mit der WinAPI und je nach Windowsversion/Updates ergibt das ein anderes Speicherformat, womit sich in der DFM ab und an mal was ändert.

ABER, das Bild wird doch als Bitmap (unkomprimiert) gespeichert und wenn die Bildbearbeitung auch unkomprimiert schuftet, dann dürfte es es keine Verluste geben.

Weiß nicht wie es jetzt ist, aber es klingt noch danach.
"Früher" wurden alle Images in EINEM großen Bild gespeichert, als Raster in einem großen Quadrat, mit X:Y abhängig von der Anzahl der Einzelbilder.
Bei JPEG könnten sich dann benachbarte Bilder beeinflussen und beim bearbeiten/verschieben/neuspeichern würde jedes Mal was verloren gehen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Icons "fransen" mit der Zeit aus?

  Alt 1. Mär 2016, 10:38
Entsetzen!! (Noch kein Smiley für diesen Gesichtsausdruck).

Vielen Dank an alle für die Tipps!

Es gehen systematisch Daten verloren, das Problem ist schon länger bekannt und niemand hat bisher etwas dagegen unternommen?? Ich fasse es nicht!! Ein Programm wie die Delphi IDE müsste doch in der Lage sein, Daten fehlerfrei abzuspeichern??

Gibt es denn noch keinen Quality Report bei Embarcadero für diesen Horror?

Leider ist der Tipp mit der DLL zu aufwendig, da ich in der gegenwärtigen Phase sehr häufig Bilder in der ImageList ändere.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Icons "fransen" mit der Zeit aus?

  Alt 1. Mär 2016, 11:08
Entsetzen!! (Noch kein Smiley für diesen Gesichtsausdruck).

Vielen Dank an alle für die Tipps!

Es gehen systematisch Daten verloren, das Problem ist schon länger bekannt und niemand hat bisher etwas dagegen unternommen?? Ich fasse es nicht!! Ein Programm wie die Delphi IDE müsste doch in der Lage sein, Daten fehlerfrei abzuspeichern??

Gibt es denn noch keinen Quality Report bei Embarcadero für diesen Horror?
Was kann Emba dafür das MS meint mit jeder Windows-Version hier das Speicherformat ein bischen anders zu handhaben?

Leider ist der Tipp mit der DLL zu aufwendig, da ich in der gegenwärtigen Phase sehr häufig Bilder in der ImageList ändere.
Wir haben bein uns alle Images auf einem zentralen Formular als "ressourcen-dll".
Mit ein paar Helperfunktionen werden dies Images zur laufzeit überall dort geholt wo sie in ImageListe, Button-Images, ... benötigt werden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Icons "fransen" mit der Zeit aus?

  Alt 1. Mär 2016, 11:30
Was kann Emba dafür das MS meint mit jeder Windows-Version hier das Speicherformat ein bischen anders zu handhaben?
Das hat nichts mit dem Windows-Speicherformat zu tun. In meinem Bericht habe ich beschrieben, dass die Speicherfehler innerhalb kürzester Zeit auftreten.
  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 11:17 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