Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Картинка из dll [D7, Win95/98, WinME, NT4, Win2k, WinXP]


Lui ©   (2004-05-09 23:08:00) 

Есть форма, на ней картинка (с надписью "Подождите"). Поверх этой картинки ещё одна, но без изображения. Изображение во вторую загружаю из dll (его размер 25 Мб). Хотелось бы иметь следующее. При открытии формы отображается картинка "Подождите", после чего во вторую загружается изображение из dll. После полной загрузки второй, первая исчезает. Сейчас происходит то, что пока вторая грузится первая не отображается, то есть они грузятся одновременно.


Lui   (2004-05-09 23:35:00) [1]

Так в длл и есть jpeg, просто больших размеров


unit Map;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons, AppEvnts, Gauges;

type
 TMapForm = class(TForm)
   MapBox: TScrollBox;
   MapImg: TImage;
   ListBox1: TListBox;
   Wait: TImage;
   Fon: TImage;
   ExitButton: TSpeedButton;
   Indic: TGauge;
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
   procedure ExitButtonClick(Sender: TObject);
   procedure FonProgress(Sender: TObject; Stage: TProgressStage;
     PercentDone: Byte; RedrawNow: Boolean; const R: TRect;
     const Msg: String);
 private
   { Private declarations }
 public
 libr: HINST;
   { Public declarations }
 end;

var
 MapForm: TMapForm;

implementation

Uses Main,functions;
{$R *.dfm}

procedure TMapForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
MapForm.Enabled:=False;
if ConfirmExit() then
       begin
               Action:=caNone;
               MapForm.Enabled:=True;
       end
else
       begin
            FreeLibrary(libr);
            Application.Terminate;
       end;

end;

procedure TMapForm.ExitButtonClick(Sender: TObject);
begin
MapForm.Close;
end;

procedure TMapForm.FonProgress(Sender: TObject; Stage: TProgressStage;
 PercentDone: Byte; RedrawNow: Boolean; const R: TRect;
 const Msg: String);
begin
  if Stage=psEnding then
       begin
        libr:= LoadLibrary(PChar(Main.path+'map.dll'));
        MapImg.Picture.Bitmap.Handle:=LoadBitmap(libr,'MAP_RU');
       end;
  Indic.Progress:=Indic.Progress+1;
end;

end.


Объект wait - картинка с надписью "Подождите". MapImg - карта, которая грузится из длл


Nick Denry   (2004-05-09 23:26:00) [2]

Код в студию...

И зачем такой большой размер БМП?

Есть же компрессия RLE (без проблем  - поддерживается виндой), JPEG (Оле контейнер - тоже досточно несложно..)
и т.д.?


Наверх

Титульная страница Поиск, карта сайта Написать письмо