![]() |
Bitmap von ImageList laden ?
Hallo
ich habe 3 Bitmaps in ImageList1 und möchte ein Bitmap von Listimage in image1 laden |
Re: Bitmap von ImageList laden ?
Bild Index 0 der Imagelist in das Image laden:
Delphi-Quellcode:
ImageList1.GetBitmap(0, Image1.Picture.Bitmap);
|
Re: Bitmap von ImageList laden ?
es ging. Danke!
|
Re: Bitmap von ImageList laden ?
Hallo zusammen,
ich bin durch suchen auf diesen Beitrag gestossen. Diese Funktion würde ich gerne in meinem Starter mit einfügen. Ich habe ein kleines Prog geschrieben, welches in die Autostart integriert wird, und über welches mein eigendliches Programm gestartet wird. Dieses Programm habe ich geschrieben, um eventuelle Verzögerungen beim Windows Start zu überwinden. Jetzt habe ich mir überlegt, das es ja die optimale Möglichkeit wäre in diesen 30 Sekunden ein bißchen Werbung über unser Unternehmen in diesen Starter zu integrieren. Soll heißen ich möchte in 30 Sekunden 50 verschiede Werdenbanner in der Größe 75x900 Pixel als Bitmap auf die Starterform legen. Diese Sollen dann nach jeweils 5 Sekunden geändert werden. Kennt man ja aus verschiedenen Installationsprogrammen. Leider stürzt mein Delphi schon beim einfügen der Bitmap in meine ImageList ab. Sobalt ich auf kompilieren oder Speichern gehe. Geht gar nichts mehr. Ich vermute, das es mit der Bild Größe und dem entsprechenden Speicherbedarf zutun hat. Kann mir vieleicht jemand sagen, wie ich das Problem lösen kann, oder wo das Problem liegt. :gruebel: Danke Gruß Jens |
Re: Bitmap von ImageList laden ?
Es liegt tatsächlich an der Größe des Bildes. Es darf nur 256 Pixel breit sein. In der Höhe besteht diese Begrenzung nicht.
|
Re: Bitmap von ImageList laden ?
Gibt es denn da was, womit ich Bilder in der Größe 150(h)x900(b) verarbeiten kann. Ingesamt 10 Stck.
Danke und Gruß Jens |
Re: Bitmap von ImageList laden ?
Ich würde die Bilder einfach als
![]() |
Re: Bitmap von ImageList laden ?
Ich habe größere Bilder auch als Ressource eingebunden. Hat ausserdem den Vorteil, dass es keine Bitmaps sein müssen.
|
Re: Bitmap von ImageList laden ?
Zitat:
|
Re: Bitmap von ImageList laden ?
Ausserdem kann die LMDListe Bilder komprimieren, wenn sie dann doch nur als BMPs vorliegen. Und von einem "Hexadezimal"Overhead höre ich im Zusammenhang mit ImageListen zum ersten mal :D
Sherlock |
Re: Bitmap von ImageList laden ?
Zitat:
|
Re: Bitmap von ImageList laden ?
Zitat:
|
Re: Bitmap von ImageList laden ?
Hallo zusammen,
und besten dank schon mal für die Info´s. Ich habe mein Problem jetzt mit einer Resourcendatei und einer Graphics32 Komponentensammlung über die Komponente Image32 gelößt. Auf diese Komponente bin durch die Suchmaschine gekommen, da ich die Bilder gerne überblenden würde. Ich habe mir verschiedene Beiträge angesehen, jedoch keinen der mir so richtig helfen konnte. Ich zeig Euch hier mal meine aktuelle Lösung und hoffe, das ihr mir nochmal weiterhelfen könt.
Delphi-Quellcode:
Danke schon mal
procedure TPSStarter.FormCreate(Sender: TObject);
var Live : TBitmap32; begin PicTimer.Interval := Starter.Interval div 11; Live := TBitmap32.Create; Live.LoadFromResourceName(HInstance, 'Erfolg'); Image321.Bitmap := Live; Live.Free; end; procedure TPSStarter.PicTimerTimer(Sender: TObject); var Live : TBitmap32; i : integer; begin try try Live := TBitmap32.Create; case Image321.Tag of 0: Live.LoadFromResourceName(HInstance, 'Einbruch'); 1: Live.LoadFromResourceName(HInstance, 'Brand'); 2: Live.LoadFromResourceName(HInstance, 'TK'); 3: Live.LoadFromResourceName(HInstance, 'IT'); 4: Live.LoadFromResourceName(HInstance, 'Kosten'); 5: Live.LoadFromResourceName(HInstance, 'Lichtruf'); 6: Live.LoadFromResourceName(HInstance, 'Video'); 7: Live.LoadFromResourceName(HInstance, 'Zeit'); 8: Live.LoadFromResourceName(HInstance, 'Zutritt'); 9: Live.LoadFromResourceName(HInstance, 'Planung'); 10: Live.LoadFromResourceName(HInstance,'Erfolg'); end; Image321.Bitmap := Live; except Exit; end; finally Live.Free; Image321.Tag := Image321.Tag + 1; end; end; Gruß Jens |
Re: Bitmap von ImageList laden ?
Hallo zusammen,
hat keiner eine Idee. Gruß Jens |
Re: Bitmap von ImageList laden ?
Delphi-Quellcode:
Grüße und schöne Festtage
try
try Live := TBitmap32.Create; case Image321.Tag of 0: Live.LoadFromResourceName(HInstance, 'Einbruch'); 1: Live.LoadFromResourceName(HInstance, 'Brand'); 2: Live.LoadFromResourceName(HInstance, 'TK'); 3: Live.LoadFromResourceName(HInstance, 'IT'); 4: Live.LoadFromResourceName(HInstance, 'Kosten'); 5: Live.LoadFromResourceName(HInstance, 'Lichtruf'); 6: Live.LoadFromResourceName(HInstance, 'Video'); 7: Live.LoadFromResourceName(HInstance, 'Zeit'); 8: Live.LoadFromResourceName(HInstance, 'Zutritt'); 9: Live.LoadFromResourceName(HInstance, 'Planung'); 10: Live.LoadFromResourceName(HInstance,'Erfolg'); end; //Image321.Bitmap := Live; // Adresse zugewiesen Image321.Bitmap.assign(Live); // versuche es mal mit Inhalt zuweisen except Exit; end; finally Live.Free; // freigegeben Image321.Tag := Image321.Tag + 1; end; end; Klaus |
Re: Bitmap von ImageList laden ?
Hallo Klaus,
ändert leider nichts an der Funktion. Die Bilder werden ja sauber und nacheinander geladenund auch zur Anzeige gebracht. Leider werden diese nicht sauber überblendet. Soll heißen, das umschalten ist halt Ruckartig und sieht somit bescheiden aus. Ich denke das die ganze Sache irgendwie mit
Delphi-Quellcode:
funktionieren könnte. Bekomme das allerdings irgendwie nicht hin.Image32.Bitmap.MasterAlpha //und Image32.Bitmap.DrawMode Viele grüße und schöne Festtage Jens |
Re: Bitmap von ImageList laden ?
Vielleicht sollte man zwei Bilder übereinanderlegen und beim Überblenden das eine ein- und das andere ausblenden?
|
Re: Bitmap von ImageList laden ?
Hallo Garfield,
da habe ich auch schon dran gedacht, allerdings bekomme ich momentan noch nicht mal das einblenden hin. Ich könnte mir vorstellen, das ich den...
Delphi-Quellcode:
Aber leider funktioniert das nicht.
Image32.Bitmap.MasterAlpha := 0;
//über eine Schleife z.B. auf 255 hochzählen muss. for I := 0 to 254 do begin Image321.Bitmap.MasterAlpha := Image321.Bitmap.MasterAlpha +1; end; Gruß Jens |
Re: Bitmap von ImageList laden ?
1. Das Image32 selbst ist opaque, lediglich das darin enthaltene Bild lässt sich gegen eine feste Hintergrundfarbe blenden. Hier wirst du wohl direkt auf das Bitmap zeichnen müssen (TBitmap32.Draw()...).
2. Deine Schleife läuft so schnell durch, dass du nichts davon mitbekommen wirst - GR32 arbeitet recht schnell. Bau hier mal eine ![]() 3. Du gibst deiner Application nirgends die Chance Messages abzuarbeiten. ![]() |
Re: Bitmap von ImageList laden ?
![]() Vielleicht ist das was. Beispiele sind ja dabei. |
Re: Bitmap von ImageList laden ?
Zitat:
du hast recht, aber leider ist die Kompo genau mein Problem. Mit dieser Kompo schlag ich mich seid Tagen rum ohne Erfolg. Die Kompo ist gut, kann viel, aber das überblenden gelingt mir einfach nicht. Gruß Jens. |
Re: Bitmap von ImageList laden ?
In der Delphi-Ecke von
![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz