Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

ImageLit   Найти похожие ветки 

 
Igor_thief   (2004-12-21 11:26) [0]

В ImageList при добавлении иконок в DesignTime есть такая кнопочка как Export, при помощти которой можно перегнать все содержимое ImageList в один BMP файл. Как потом загрузить иконки из этого файла обратно в ImageList программно?


 
Александр Иванов ©   (2004-12-21 11:43) [1]

ImageList1.FileLoad(rtBitmap,FileName,clFuchsia)


 
Igor_thief   (2004-12-21 11:57) [2]

Александр Иванов ©   (21.12.04 11:43) [1]
Пробывал, но по неизвестным мне причинам грузится только верхний ряд картинок (при условии что картинки разместились как матрица 3х3, 4х4...).


 
Leonid Troyanovsky ©   (2004-12-21 14:04) [3]


> Igor_thief   (21.12.04 11:26)  
> В ImageList при добавлении иконок в DesignTime есть такая
> кнопочка как Export, при помощти которой можно перегнать
> все содержимое ImageList в один BMP файл. Как потом загрузить
> иконки из этого файла обратно в ImageList программно?


FileLoad(rtBitmap, ..) ?

--
С уважением, LVT.


 
Igor_thief   (2004-12-21 16:47) [4]

Leonid Troyanovsky ©   (21.12.04 14:04) [3]
Смотрите Igor_thief   (21.12.04 11:57) [2]
--
С уважением, Igor_thief.


 
Leonid Troyanovsky ©   (2004-12-21 21:02) [5]


> Igor_thief   (21.12.04 16:47) [4]
> Смотрите Igor_thief   (21.12.04 11:57) [2]


Не буду я ничего смотреть.
Хотел, конечно, сначала извиниться за поздний пост,
(тем более, что это была техническая ошибка).
А потом решил, что не стоит. Никому не режет глаз кривой
сабж, никто не извиняется за допущенные ошибки.
Так вот, на моей D6 я могу сохранить в линию (не в двумерный
массив) хоть 150 иконок.
А в D3 я никогда и не знал таких прелестей (Export) и
прекрасно без оной обходился (хоть 200 иконок).

Вот так-то.

--
С уважением, LVT.


 
Igor_thief   (2004-12-23 21:53) [6]

Leonid Troyanovsky ©   (21.12.04 21:02) [5]
Ух какой нервный!
Спокойно!
А как обходился без экспорт?


 
Просто Джо ©   (2004-12-24 03:07) [7]


> Igor_thief   (23.12.04 21:53) [6]

Ну и зачем "этот" экспорт так нужен?


 
Igor_thief   (2004-12-24 21:02) [8]

Просто Джо ©   (24.12.04 03:07) [7]
Дело в том, что мне надо чтобы все катинки из ImageList не были в ресурсе программы, а загружались в него из внешнего файла. Желательно чтобы он был один, а не равен числу картинок. Экспорт помогает решить это. НО также надо сделать возможность экспорта программно, так как количество картинок может меняться.


 
Leonid Troyanovsky ©   (2004-12-25 13:44) [9]


> Igor_thief   (23.12.04 21:53) [6]
> А как обходился без экспорт?


by Vladimir Titov:


uses
 commctrl;

procedure ImageList_WriteData(ImageList: TImageList; Stream: TStream);
var
 SA: TStreamAdapter;
begin
 SA := TStreamAdapter.Create(Stream);
 try
   if not ImageList_Write(ImageList.Handle, SA) then
     raise EWriteError.Create("Failed to write ImageList data to stream");
 finally
   SA.Free;
 end;
end;

procedure ImageList_ReadData(ImageList: TImageList; Stream: TStream);
var
 SA: TStreamAdapter;
begin
 SA := TStreamAdapter.Create(Stream);
 try
   ImageList.Handle := ImageList_Read(SA);
   if ImageList.Handle = 0 then
     raise EReadError.Create("Failed to read ImageList data from stream");
 finally
   SA.Free;
 end;
end;

procedure ImageList_SaveToFile(ImageList: TImageList; const FileName: string);
var
 FileStream: TFileStream;
begin
 FileStream := TFileStream.Create(FileName, fmCreate);
 try
   ImageList_WriteData(ImageList, FileStream);
 finally
   FileStream.Free;
 end;
end;

procedure ImageList_LoadFromFile(ImageList: TImageList; const FileName:
string);
var
 FileStream: TFileStream;
begin
 FileStream := TFileStream.Create(FileName, fmShareDenyNone);
 try
   ImageList_ReadData(ImageList, FileStream);
 finally
   FileStream.Free;
 end;
end;


--
Regards, LVT.


 
Igor_thief   (2004-12-28 18:38) [10]

Leonid Troyanovsky ©   (25.12.04 13:44) [9]
Шас потестю!


 
Igor_thief   (2004-12-28 18:48) [11]

Leonid Troyanovsky ©   (25.12.04 13:44) [9]
Не работает!


 
Ученик   (2004-12-28 21:53) [12]

На основе Delphi7\Source\Property Editors\ClxImgEdit.pas

Bitmap.LoadFromFile()


function ImageListFromBitmap(ImageList : TCustomImageList; Bitmap : TBitmap; MaskColor : TColor = clFuchsia) : Integer;
var
 X, Y: Integer;
 IWidth, IHeight: Integer;
 NewBitmap: TBitmap;
 SubDivideX, SubDivideY: Boolean;
 DivideX, DivideY: Integer;
begin
 Result := ImageList.Count;
 NewBitmap := TBitmap.Create;
 try
   IWidth  := ImageList.Width;
   IHeight := ImageList.Height;
   NewBitmap.Width  := IWidth;
   NewBitmap.Height := IHeight;

   SubDivideX := (Bitmap.Width > IWidth) and (Bitmap.Width mod IWidth = 0);
   SubDivideY := (Bitmap.Height > IHeight) and (Bitmap.Height mod IHeight = 0);

   if SubDivideX then
     DivideX := Bitmap.Width div IWidth
   else
     DivideX := 1;

   if SubDivideY then
     DivideY := Bitmap.Height div IHeight
   else
     DivideY := 1;

   for Y := 0 to DivideY - 1 do
     for X := 0 to DivideX - 1 do begin
       NewBitmap.Canvas.CopyRect(Rect(0, 0, NewBitmap.Width,
                 NewBitmap.Height), Bitmap.Canvas,
                 Rect(X * IWidth, Y * IHeight, (X + 1) * IWidth,
                 (Y + 1) * IHeight));
       ImageList.AddMasked(NewBitmap, MaskColor)
     end
 finally
   NewBitmap.Free
 end;
end;



 
Igor_thief   (2004-12-30 13:08) [13]

Ученик   (28.12.04 21:53) [12]
Вечерком проверю!



Страницы: 1 вся ветка

Текущий архив: 2005.01.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.059 c
1-1103985025
Narik
2004-12-25 17:30
2005.01.16
СРОЧНО!!! связь с файлами?


3-1102850754
syte_ser78
2004-12-12 14:25
2005.01.16
кодировка в paradox 7


3-1103097786
Arkady
2004-12-15 11:03
2005.01.16
Базы CDS


14-1104150956
Ilya___
2004-12-27 15:35
2005.01.16
Подскажите пожалуйта! Как создать файл таблицу Excel


1-1103867644
paule
2004-12-24 08:54
2005.01.16
перенос формы в QReport