Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Eigene Komponente mit Imagelist. (https://www.delphipraxis.net/14567-eigene-komponente-mit-imagelist.html)

maximi 11. Jan 2004 17:40


Eigene Komponente mit Imagelist.
 
Hallo!

Delphi-Quellcode:

unit BorderSkin;

interface

uses
  SysUtils, Classes, Controls, ExtCtrls,forms;

type
  TBorderSkin = class(TImage)
  private
    { Private-Deklarationen }
  protected

    { Protected-Deklarationen }
  public
           Image:Array[1..10] of TImage;
    { Public-Deklarationen }
  published
  procedure load_imagelist(ImageList:TImageList);

    constructor set_koordinaten(Form:TForm);

    { Published-Deklarationen }
  end;

procedure Register;

implementation

constructor TBorderSkin.set_koordinaten;
var I:Integer;
begin
  for i := 1 to 10 do
  begin
    Image[i] := TImage.Create(self);
    Image[i].Parent := Form;
  end;

    //ganz links oben
    if(i = 1) then
    begin
      Image[i].Top := 0;
      Image[i].Width := 5;
      Image[i].Height := 30;
      Image[i].Left := 0;
    end;

    //mitte oben
    if(i = 2) then
    begin
      Image[i].Top := 0;
      Image[i].Width := trunc(1.1648522*(Form.Width-55));;
      Image[i].Height := 32;
      Image[i].Left := 4;
    end;

    //mitte rechts
    if(i = 3) then
    begin
      Image[i].Top := 0;
      Image[i].Width := 45;
      Image[i].Height := 32;
      Image[i].Left := Image[2].Width + 3;
    end;

    if(i = 4) then
    begin
      Image[i].Top := 0;
      Image[i].Width := trunc(7.1333333333*Form.Width-55);
      Image[i].Height := 32;
      Image[i].Left := Image[2].Width + Image[2].Width - 1;
    end;

    if(i = 5) then
    begin
      Image[i].Top := 0;
      Image[i].Width := 5;
      Image[i].Height := 30;
      Image[i].Left := Form.Width-5;
    end;

    if(i = 6) then
    begin
      Image[i].Top := 3;
      Image[i].Width := 21;
      Image[i].Height := 21;
      Image[i].Left := Form.Width-10;
    end;

    if(i = 7) then
    begin
      Image[i].Top := 3;
      Image[i].Width := 21;
      Image[i].Height := 21;
      Image[i].Left := Image[6].Left-31;
    end;

    if(i = 8) then
    begin
      Image[i].Top := 30;
      Image[i].Width := 5;
      Image[i].Height := Form.Height - 32;
      Image[i].Left := 0;
    end;

    if(i = 9) then
    begin
      Image[i].Top := Form.Height-5;
      Image[i].Width := Form.Width-8;
      Image[i].Height := 5;
      Image[i].Left := 4;
    end;

    if(i = 10) then
    begin
      Image[i].Top := 30;
      Image[i].Width := 5;
      Image[i].Height := Form.Height;
      Image[i].Left := Form.Width-5;
    end;
  Form.BorderStyle := bsnone;
end;


procedure TBorderSkin.load_imagelist;
var i:Integer;
begin
  for i := 1 to 10 do
    ImageList.GetBitmap(i,Image[i].Picture.Bitmap);

end;
procedure Register;
begin
  RegisterComponents('Skins', [TBorderSkin]);
end;

end.
Die Procedure TBorderSkin.load_imagelist klappt nicht so wie ich mir das vorstelle. Ich sehe nur immer das erste Image und nicht alle 10!

Danke!

kiar 11. Jan 2004 18:04

Re: Eigene Komponente mit Imagelist.
 
nimm mal das letze end im code weg, der hier steht:
Delphi-Quellcode:
 
  begin
    Image[i] := TImage.Create(self);
    Image[i].Parent := Form;
  end;

maximi 11. Jan 2004 19:03

Re: Eigene Komponente mit Imagelist.
 
Versteh ich jetzt irgendwie nicht. Welches end? Die sind doch alle richtig gesetzt.

kiar 11. Jan 2004 19:06

Re: Eigene Komponente mit Imagelist.
 
deine schleife hört nach dem 1.end auf und hat als I:= 10 und damit immer das letzte icon in der liste.

kiar 11. Jan 2004 19:12

Re: Eigene Komponente mit Imagelist.
 
schau mal nach Addicon bei der Imagelist
Delphi-Quellcode:
imagelist1.addIcon(....)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 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