delphi 结构体的使用、Tbitmap和TMemoryStream的转换  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 结构体的使用、Tbitmap和TMemoryStream的转换


一、定义结构体

type
  Tfrequency_band_list = class
    frequency_band_name: string;
    frequency_band_pic_color: string;
    frequency_band_pic_Stream: TMemoryStream;
  end;
二、结构体的使用

//全局变量
var
  frequency_band_list: array of Tfrequency_band_list;//定义变量
  
//界面初始化时
var
  bmp: Tbitmap;
begin
  SetLength(frequency_band_list, 5);//分配存储空间
  bmp := Tbitmap.Create;//初始化Tbitmap
  for i := 1 to length(frequency_band_list) - 1 do//存储空间是从0开始的,个人习惯从1开始
  begin
    frequency_band_list[i] := Tfrequency_band_list.Create;//结构图初始化
    frequency_band_list[i].frequency_band_pic_Stream := TMemoryStream.Create;//内存流初始化
    ImageList3.GetBitmap(i, bmp);//借用了一个imagelist保存了一部分相同大小的图片,为BMP变量赋值
    bmp.PixelFormat := pfDevice;
    bmp.PixelFormat := pf24bit;//设定24位,这段程序是为SPEEDBUTTON加透明图片的,所以用的24位
    bmp.SaveToStream(frequency_band_list[i].frequency_band_pic_Stream); //将BMP保存到内存流中
    frequency_band_list[i].frequency_band_name := '1';//赋值
    frequency_band_list[i].frequency_band_pic_color := '1';
  end;
  
  bmp.Free;//用完后释放
end;
 
三、使用

procedure TForm2.Button36Click(Sender: TObject);
var
  Stream: TMemoryStream;//定义这个变量主要是为了演示用法,直接用全局定义的也可以
  bmp: Tbitmap;
begin
  //Stream := TMemoryStream.Create;因为定义了Stream变量,并且进行了赋值,所以不进行初始化
  frequency_band_list[1].frequency_band_pic_Stream.Position := 0;//用之前先调指针
  Stream := frequency_band_list[1].frequency_band_pic_Stream;//赋值
  Stream.Position := 0;//这句可以不须要,内存流变量赋值应该是直接给的指针,这个时候其实两个内存流变量指向的是一个地址,改一个就相当于改另一个
  bmp := Tbitmap.Create;
  bmp.LoadFromStream(Stream);
  bmp.PixelFormat := pfDevice;
  bmp.PixelFormat := pf24bit;
  SpeedButton1.glyph.Assign(bmp);//speedbutton类型的按钮这样加载图片
  //stream.Free;//因为是同一个地址,所以这句也取消了,否则两个变量一起被释放了
  bmp.Free;
end;
 
--------------------- 
作者:以后换名字 
来源:CSDN 
原文:https://blog.csdn.net/weixin_44387646/article/details/87935335 
版权声明:本文为博主原创文章,转载请附上博文链接!

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.066107988357544 seconds