Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.16;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.044 c
3-1102714041
Zlod3y
2004-12-11 00:27
2005.01.16
Нужны ли генераторы?


1-1104237367
Programmix
2004-12-28 15:36
2005.01.16
Пользовательский формат бумаги


11-1085561137
Viman
2004-05-26 12:45
2005.01.16
По поводу тормознутости KolToolBar c tboFlat и FixFlatXP


1-1104137406
swinole
2004-12-27 11:50
2005.01.16
StringGrid и рисунки


3-1103120781
Scorpio
2004-12-15 17:26
2005.01.16
Создание таблицы с помощью SELECT * insert lq from qw





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский