Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2012, 02:10   #1
vova65
Пользователь
 
Регистрация: 05.06.2011
Сообщений: 48
По умолчанию HBITMAP в новом компоненте TBitmap

Подскажите пожалуйста новичку... как мне вывести HBITMAP картинки bmp...
что я в функции GetHandle не правильно делаю?
насколько я понял то HBITMAP - это указатель на структуру bmp (BITMAPFILEHEADER,BITMAPINFOHEADER, RGBQUAR).. или я ошибаюсь?
Код:
unit MBitmap;

interface

uses
  SysUtils, Classes, Dialogs;

type  HBITMAP = type LongWord;
type
  TMBitmap = class(TObject)
  private
    { Private declarations }
  function GetHandle: HBITMAP; virtual;
  protected
    { Protected declarations }
  public
    { Public declarations }
  Byte:array of byte;
  //PByte:^Byte;
  HByte:^HBITMAP;
  IByte:^LongWord;
  ByteZ:byte;
  property Handle: HBITMAP read GetHandle;
  constructor Create(FN:string); overload;
  published
    { Published declarations }
  end;

//procedure Register;

implementation

{procedure Register;
begin
  RegisterComponents('Standard', [TMBitmap]);
end;}

{ TMBitmap }

constructor TMBitmap.Create(FN:string);
Var F:File;
begin
    AssignFile(F,FN);
    Reset(F, 1);
    SetLength(Byte,FileSize(F));
    BlockRead(F,Byte[0],5);
    CloseFile(F);

    //showmessage(inttostr(Byte[1]));
    inherited Create;
end;

function TMBitmap.GetHandle: HBITMAP;
begin
HByte:=Addr(Byte);
//IByte:=Addr(Byte);
//showmessage(inttostr(IByte^));
Result:=HByte^;
end;

end.
vova65 вне форума Ответить с цитированием
Старый 10.06.2012, 21:58   #2
vova65
Пользователь
 
Регистрация: 05.06.2011
Сообщений: 48
По умолчанию

с присвоением Pointer -> HBITMAP методом научного тыка разобрался..

Код:
function TMBitmap.GetHandle: HBITMAP;
var s:^integer;
begin
s:=@Byte[0];
asm
 mov eax,s
 mov Result,eax
end;
end;
подскажите пожалуйста на что именно указывает HBITMAP???
vova65 вне форума Ответить с цитированием
Старый 11.06.2012, 00:20   #3
vova65
Пользователь
 
Регистрация: 05.06.2011
Сообщений: 48
По умолчанию

никто не знает чтоли? или всем лень писать?
vova65 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Canvas в новом компоненте vova65 Компоненты Delphi 5 08.06.2012 19:52
работа с HBITMAP sover Win Api 9 17.10.2011 11:46
HBITMAP => DRAW Alex Cones Общие вопросы Delphi 18 08.05.2010 18:52
Hbitmap из png zumm Мультимедиа в Delphi 1 27.03.2010 20:55
Вывод HBITMAP AidarBik Win Api 7 30.07.2008 14:21