Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Anleitung zum Gebrauch von TImageList (https://www.delphipraxis.net/110637-anleitung-zum-gebrauch-von-timagelist.html)

Mikender 21. Mär 2008 09:29


Anleitung zum Gebrauch von TImageList
 
Hallo,

:wall: Ich hätte da mal ein Problem:
:wall:

Ich habe noch nie mit der TImageList gearbeitet,

Nun möchte ich gerne wissen wie das geht

(

:wiejetzt: Muss man da was aus der Komponentenleiste nehmen? :wiejetzt:

:wiejetzt: muss man sie createn? :wiejetzt:

:wiejetzt: Wie fügt man Bitmaps hinzu ? :wiejetzt:

:wiejetzt: Wie speichert man alle beinhaltende Bilder in einem Ordner? :wiejetzt:

)


:coder2: Hat da jemand ein Seite mit einem Tutorial ( Aber bitte für Anfänger) :coder2:



:dance: :hello: :wink:Schon mal im vorraus Danke :wink: :hello: :dance:

Klaus01 21. Mär 2008 10:09

Re: Anleitung zum Gebrauch von TImageList
 
Zitat:

Zitat von Mikender
Muss man da was aus der Komponentenleiste nehmen?

muss man sie createn?

Wie fügt man Bitmaps hinzu ?

Wie speichert man alle beinhaltende Bilder in einem Ordner?


Hat da jemand ein Seite mit einem Tutorial ( Aber bitte für Anfänger)

Guten Morgen,

Die TImageList ist bei mir unter dem Reiter Win32 zu finden.
Wenn Du sie auf die Form ziehst, musst Du sie nicht extra erstellen oder createn
wie Du sagst.
Du kannst die Bilder zur Designzeit in die ImageList einfügen.
Einfach einen Doppelklick auf die ImageList machen.
Die Bilder werden als Resource in de Exe eingebunden, Du musst da nichst machen.

Und noch zur Info, hier gilt eine Frage pro Thread.

Grüße
Klaus

Mikender 21. Mär 2008 13:49

Re: Anleitung zum Gebrauch von TImageList
 
Ok ich glaube du hast mein Problem nicht verstanden:


Ich schieße während des Programmes Screnshots

Diese will ich alle in einer TImageList Speichern;

Und beim schließen in einem Ordner speichern.
Delphi-Quellcode:
unit MainUnit;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    ImageList1: TImageList;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
function MakeScreenShotfunc():TBitmap;
var
  Form1: TForm1;
  DatName : String;
implementation

{$R *.dfm}

var
  ImgList: TImagelist;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ImgList.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ForCedIrEctOrIeS('C:\Dokumente und Einstellungen\Delphi');
  ImgList:=TImagelist.Create(Form1);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.AlphaBlend:=True;
  Sleep(75);
  ImgList.Add(MakeScreenShotfunc); // Hier das PROBLEM
  Sleep(75);
  Form1.AlphaBlend:=False;
end;
function MakeScreenShotfunc():TBitmap;
var
  DesktopDC: HDC;
  Screenbit : TBitmap;
begin
  DesktopDC := CreateDC('DISPLAY', nil, nil, nil);
  try
    Screenbit.PixelFormat := pfDevice;
    Screenbit.Width := Screen.Width;
    Screenbit.Height := Screen.Height;

    BitBlt(Screenbit.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DesktopDC, 0, 0, SRCCOPY);
  finally
    DeleteDC(DesktopDC);
  end;

  result:=Screenbit;
end;
end.
Nun wenn ich aber ImgList1.Add mache verlangt er 2 Bitmaps (Image und Mask) was ist nun Mask

Schon mal im Vorraus Danke
:thumb:

sakura 21. Mär 2008 13:58

Re: Anleitung zum Gebrauch von TImageList
 
Zitat:

Zitat von Mikender
Ok ich glaube du hast mein Problem nicht verstanden:

Du hast es ja auch nicht beschrieben :zwinker:
Zitat:

Zitat von Mikender
Ich schieße während des Programmes Screnshots. Diese will ich alle in einer TImageList Speichern. Und beim schließen in einem Ordner speichern.

TImageList ist dafür wirklich nicht gedacht. TImageList ist eine Designzeit-Komponente. Ich will jetzt nicht sagen, dass es nicht möglich ist, aber es ist i.A. äußerst ungünstig.
Zitat:

Zitat von Mikender
Nun wenn ich aber ImgList1.Add mache verlangt er 2 Bitmaps (Image und Mask) was ist nun Mask

Übergib einfach nil für Mask.

...:cat:...

Mikender 21. Mär 2008 14:01

Re: Anleitung zum Gebrauch von TImageList
 
Was würdest du mir statt TImageList empfehlen ???

Denn ich will mehrere Bitmaps während der Laufzeit sammeln und erst am Ende in einem Ordner speichern

Fussball-Robby 21. Mär 2008 14:03

Re: Anleitung zum Gebrauch von TImageList
 
Es wäre aber einfacher, sie direkt zu speichern. Wieso willst du sie erst am Ende speichern?

sakura 21. Mär 2008 14:04

Re: Anleitung zum Gebrauch von TImageList
 
Das kommt darauf an, wie Du Deine ScreenShots speicherst. Wenn Du die über ein TBitmap/TGraphic Objekt speicherst, dann z.B. in einer Hier im Forum suchenTObjectList. Aber warum speicherst Du die nicht sofort? Auf meinem Rechner würde jeder ScreenShot ca. 23 MB RAM verbrauchen, das wird sehr schnell sehr viel...

...:cat:...

Mikender 21. Mär 2008 14:08

Re: Anleitung zum Gebrauch von TImageList
 
JA aber mein Problem ist ich möchte dass er IM HINTERGRUND Screenshots macht und das er nicht für jedes Speichern die CPU leistung hochjagt.

Hast du da eine Idee (Den Arbeitsspeicher will ich aber wirklich nicht vollstopfen :lol: )

Schon mal jetzt Danke

sakura 21. Mär 2008 14:39

Re: Anleitung zum Gebrauch von TImageList
 
Zitat:

Zitat von Mikender
Hast du da eine Idee (Den Arbeitsspeicher will ich aber wirklich nicht vollstopfen :lol: )

Speichere automatisch nach 100/200 MB oder alle 10 Bilder oder was auch immer ;)

...:cat:...

Mikender 21. Mär 2008 16:03

Re: Anleitung zum Gebrauch von TImageList
 
DANKE


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 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-2025 by Thomas Breitkreuz