Здравствуйте ещё и ещё.
Как избежать пропадания значка, нарисованного на TabSheet3 компонента ТPageControl, после переключения вкладок, свертывания/развертывания окна и т.п?
| Код | procedure LoadIcon(Module: String; Number: word); var CanCntr: TControlCanvas; begin CanCntr := TControlCanvas.Create; CanCntr.Control := Form1.TabSheet3; //Третья вкладка PageControl1 DrawIcon(CanCntr.Handle, 10, 10, ExtractIcon(HInstance, PChar(Module), Number)); end;
//Вызов LoadIcon('pfdimg.dll', 8); |
Была у меня ещё такая идея: Рисую прямо в ТImage.
| Код | {$IFDEF WIN32} const BadDllLoad = 0; {$ELSE} const BadDllLoad = 32; {$ENDIF}
//Загрузка курсора из DLL procedure LoadIconfromDLL(TheHDC:hDC; Number: word); var h, r: cardinal; begin h := LoadLibraryA('pfdimg.dll'); if h <= BadDllLoad then Exit else begin r := ExtractIcon(h, 'pfdimg.dll', Number); DrawIcon(TheHDC, 0, 0, r); FreeLibrary(h); end; end;
//Вызов LoadIconfromDLL(Image2.Canvas.Handle, 8); |
Последняя работает лучше, но пока вкладки не переключишь значёк не появиться. Image2 расположен на вкладке TabSheet3 компонента ТPageControl. И прорисовываеться значок не очень красиво когда в Image2 уже есть рисунок. Что-то с прозрачностью. Рисунок должен находиться в Image2, так задумано, а поверх него загружаеться значок.
:baaa |