Topic: Load icons for buttons from the database

Works from version 6.4


var
    ImageList: TImageList;

begin
    ImageList:=TImageList.Create(Form1);
    ImageList.Masked:=false;
    ImageList.ColorDepth:=cd32bit;

    // size of images
    ImageList.Width := 24;
    ImageList.Height := 24;

    ImageList.AddPngFromDatabase('icons', 'pngfile', 1);
    ImageList.AddPngFromDatabase('icons', 'pngfile', 2);
    ImageList.AddPngFromDatabase('icons', 'pngfile', 3);

    Form1.Button1.Images := ImageList;
    Form1.Button2.Images := ImageList;
    Form1.Button3.Images := ImageList;
    Form1.Button1.ImageIndex := 0;
    Form1.Button2.ImageIndex := 1;
    Form1.Button3.ImageIndex := 2;
end.


Project example:
http://myvisualdatabase.com/forum/misc. … download=1

Dmitry.

Re: Load icons for buttons from the database

Из примера не понятно, как картинку загружать

вроде так

ImageList.AddPng(ExtractFilePath(Application.ExeName)+'images\new0.png');

У меня не получилось, либо ничего или черный квадрат.

Не понятно как быть с кнопками на других формах?

Приходится городить из-за виндового масштабирования...

Post's attachments

Attachment icon new_24x24.png 4.12 kb, 2 downloads since 2020-10-21 

3 (edited by vit007 2020-10-24 15:40:09)

Re: Load icons for buttons from the database

А чем обусловлено, что картинка больше 24х24, не может быть, т.е. не отображается?

Re: Load icons for buttons from the database

There is a poster here who has done that, I just can't find their post.  It was a big project around a car dealer. I think they may have overlayed the buttons using clickable images.


Здесь есть плакат, который это сделал, я просто не могу найти его пост. Это был большой проект, связанный с автомобильным дилером. Я думаю, они могли наложить на кнопки изображения, на которые можно нажимать.

On a clear disk you can seek forever

Re: Load icons for buttons from the database

Found it.

ver.2.0.4_ErrorFastReport  is the project you need to search for by RC Service.  Here is part if this contributors image setup code. Some of it is in English, as I started to google translate it so I could understand what they have done.

Нашел.

ver.2.0.4_ErrorFastReport - это проект, который нужно искать с помощью RC Service. Вот часть кода настройки изображения этого автора. Некоторые из них на английском, поскольку я начал переводить их в Google, чтобы я мог понять, что они сделали.


// 3.1. Library images for button : ImageList
  { on Form1 }
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\compress_repair.png');        // #0- Library Work: мужик с ключом
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\car--exclamation.png');       // #1- Library ТТХ Car: машинка+!
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\book_spelling.png');          // #2- Dictionaris:
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\mopar.png');                  // #3- Mopar Parts: логотип Mopar
  { on frmWorkList }
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\report_add.png');             // #4- New Work:
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\report_edit.png');            // #5- Edit Work:
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\report_delete.png');          // #6- Delete Work:
  { on ALL FORM'S }
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\database_save.png');          // #7- Save Record: сохранить запись
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\broom.png');                  // #8- Clear Record: очистить-метла
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\reject.png');                 // #9- ClearSearch: сброс поиска
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\account_functions.png');      // #10- Personal: мужик с ключом
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\group.png');                  // #11- Library User: человечки
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\group_add.png');              // #12- New User: человечки+
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\group_edit.png');             // #13- Edit User: человечки & pen
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\group_delete.png');           // #14- Delete User: человечки-
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\group_key.png');              // #15- Save User: человечки & key
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\coins.png');                  // #16- Price Nch: монетки
  { on frmNewEditCatalogLOP }
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\AllDay.ru.png');              // #17- Catalog LOP: молоточки
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\service_status.png');         // #18- New TTX Car: grey +
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\reject.png');                 // #19- Clear TTX Car: red x
  { on frmListWork }
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\arrow-skip-090.png');         // #20- стрелка вверх:
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\arrow-skip-270.png');         // #21- стрелка вниз;
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\accept_button.png');          // #22- галочка-ОК;
  { on frmNewEditCatalogLOP }
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\add.png');                    // #23- New Work/Part: + в кружке зеленый
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\cancel.png');                 // #24- Delete Work/Part: - в кружке красный
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\pencil_add.png');             // #25- Edit Work/Part: - карандаш с плюсиком
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\file_workflow_tasks.png');    // #26- сбросить все фильтра
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\filter_clear.png');           // #27- сбросить фильтра: по категориям
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\arrow-transition-090.png');   // #28- создать основную работу: синяя стрелка вверх
  ImageList.AddPng(ExtractFilePath(Application.ExeName)+'Images\IconButton\coins_in_hand.png');          // #29- выбрать акцию для расчётов: ладошка с монетами


-------------------------------------------------------------------------------------------------------------





{ on frmViewCalculation }
  frmViewCalculation.btnClearCalculation.Images := ImageList;
  frmViewCalculation.btnPrintCalc.Images := ImageList;
  frmViewCalculation.btnExitCalc.Images := ImageList;
  { on frmViewMapWork }
  frmViewMapWork.btnClearMapWork.Images := ImageList;
  frmViewMapWork.btnExitMapWork.Images := ImageList;
  frmViewMapWork.btnPrintMapWork.Images := ImageList;
  { on frmDocuments}
  frmDocuments.btnClearSearchFileAuto.Images := ImageList;
  frmDocuments.btnViewTO.Images := ImageList;

  // 5.1. Select images for icon's buttons...
  { on Form1 }
  Form1.btnLibraryWork.ImageIndex := 0;
  Form1.btnLibraryDataCar.ImageIndex := 1;
  Form1.btnLibraryNoMopar.ImageIndex := 46;
  Form1.btnLibraryZapCh.ImageIndex := 3;
  Form1.btnLibraryPersonal.ImageIndex := 10;
  Form1.btnLibraryUser.ImageIndex := 11;
  Form1.btnPriceNch.ImageIndex := 16;
  Form1.btnCatalogLOP.ImageIndex := 17;
  Form1.btnChangeUser.ImageIndex := 30;
  Form1.btnClearDB.ImageIndex := 6;
On a clear disk you can seek forever