亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gasform.pas

?? 詳細講述如何用delphi進行com編程
?? PAS
字號:
unit GasForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, ComObj, ActiveX, AxCtrls, ComCtrls, ExtCtrls, StdCtrls;

type
  TGasItem = class(TCollectionItem)
  private
    FDate: TDateTime;
    FGallons: Double;
    FMileage: Double;
  public
    procedure Assign(Source: TPersistent); override;
  published
    property Date: TDateTime read FDate write FDate;
    property Gallons: Double read FGallons write FGallons;
    property Mileage: Double read FMileage write FMileage;
  end;

  TGasItems = class(TCollection)
  public
    constructor Create;
    function Add: TGasItem;
    function GetItem(Index: Integer): TGasItem;
    procedure SetItem(Index: Integer; Value: TGasItem);
    property Items[Index: Integer]: TGasItem
      read GetItem write SetItem;
  end;

  TfrmGas = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    list: TListView;
    btnAdd: TButton;
    btnModify: TButton;
    btnDelete: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure btnAddClick(Sender: TObject);
    procedure btnModifyClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
  private
    { Private declarations }
    FItems: TGasItems;
    procedure AddListItem(GasItem: TGasItem);
    procedure SetListItem(LI: TListItem; GasItem: TGasItem);
    procedure EnableButtons;
  public
    { Public declarations }
  end;

implementation

uses MainForm, GasItemForm;

{$R *.DFM}

type
  TDummy = class(TComponent)
  private
    FItems: TGasItems;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Items: TGasItems read FItems write FItems;
  end;

{ TfrmGas }

procedure TfrmGas.AddListItem(GasItem: TGasItem);
var
  LI: TListItem;
begin
  LI := list.Items.Add;
  LI.Caption := DateToStr(GasItem.Date);
  LI.SubItems.Add(FloatToStrF(GasItem.Gallons, ffFixed, 8, 1));
  LI.SubItems.Add(FloatToStrF(GasItem.Mileage, ffFixed, 8, 1));

  list.Selected := LI;
end;

procedure TfrmGas.SetListItem(LI: TListItem; GasItem: TGasItem);
begin
  LI.Caption := DateToStr(GasItem.Date);
  LI.SubItems[0] := FloatToStrF(GasItem.Gallons, ffFixed, 8, 1);
  LI.SubItems[1] := FloatToStrF(GasItem.Mileage, ffFixed, 8, 1);
end;

procedure TfrmGas.EnableButtons;
begin
  btnModify.Enabled := list.Selected <> nil;
  btnDelete.Enabled := list.Selected <> nil;
end;

procedure TfrmGas.FormCreate(Sender: TObject);
var
  stm: IStream;
  Dummy: TDummy;
  OS: TOleStream;
  Index: Integer;
  GasItem: TGasItem;
begin
  FItems := TGasItems.Create;

  if SUCCEEDED(frmMain.RootStorage.OpenStream('Gas', nil,
    STGM_READ or STGM_SHARE_EXCLUSIVE, 0, stm)) then begin
    Dummy := TDummy.Create(nil);
    try
      OS := TOleStream.Create(stm);
      try
        OS.ReadComponent(Dummy);
        FItems.Assign(Dummy.FItems);
      finally
        OS.Free;
      end;
    finally
      Dummy.Free;
    end;
  end else begin
    OleCheck(frmMain.RootStorage.CreateStream('Gas',
      STGM_CREATE or STGM_READ or STGM_SHARE_EXCLUSIVE, 0, 0, stm));
  end;

  for Index := 0 to FItems.Count - 1 do begin
    GasItem := FItems.Items[Index];
    AddListItem(GasItem);
  end;
end;

procedure TfrmGas.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TfrmGas.FormDestroy(Sender: TObject);
var
  stm: IStream;
  OS: TOleStream;
  Dummy: TDummy;
begin
  OleCheck(frmMain.RootStorage.CreateStream('Gas',
    STGM_CREATE or STGM_WRITE or STGM_SHARE_EXCLUSIVE, 0, 0, stm));

  Dummy := TDummy.Create(nil);
  try
    Dummy.Items.Assign(FItems);
    OS := TOleStream.Create(stm);
    try
      OS.WriteComponent(Dummy);
    finally
      OS.Free;
    end;
  finally
    Dummy.Free;
  end;

  FItems.Free;
end;

procedure TfrmGas.btnAddClick(Sender: TObject);
var
  frmGasItem: TfrmGasItem;
  GasItem: TGasItem;
begin
  frmGasItem := TfrmGasItem.Create(nil);
  try
    if frmGasItem.ShowModal = mrOk then begin
      GasItem := FItems.Add;
      GasItem.Date := frmGasItem.Date;
      GasItem.Gallons := frmGasItem.Gallons;
      GasItem.Mileage := frmGasItem.Mileage;

      AddListItem(GasItem);

      EnableButtons;
    end;
  finally
    frmGasItem.Free;
  end;
end;

procedure TfrmGas.btnModifyClick(Sender: TObject);
var
  frmGasItem: TfrmGasItem;
  GasItem: TGasItem;
begin
  frmGasItem := TfrmGasItem.Create(nil);
  try
    GasItem := FItems.Items[list.Selected.Index];
    frmGasItem.dtDate.Date := GasItem.Date;
    frmGasItem.ecGallons.Text := FloatToStr(GasItem.Gallons);
    frmGasItem.ecMileage.Text := FloatToStr(GasItem.Mileage);

    if frmGasItem.ShowModal = mrOk then begin
      GasItem.Date := frmGasItem.Date;
      GasItem.Gallons := frmGasItem.Gallons;
      GasItem.Mileage := frmGasItem.Mileage;

      SetListItem(list.Selected, GasItem);
    end;
  finally
    frmGasItem.Free;
  end;
end;

procedure TfrmGas.btnDeleteClick(Sender: TObject);
var
  Index: Integer;
  GasItem: TGasItem;
begin
  Index := list.Selected.Index;
  list.Items.Delete(Index);
  GasItem := FItems.Items[Index];
  GasItem.Free;

  EnableButtons;
end;

{ TGasItem }

procedure TGasItem.Assign(Source: TPersistent);
begin
  if Source is TGasItem then begin
    FDate := TGasItem(Source).FDate;
    FGallons := TGasItem(Source).FGallons;
    FMileage := TGasItem(Source).FMileage;
  end else
    inherited Assign(Source);
end;

{ TGasItems }

function TGasItems.Add: TGasItem;
begin
  Result := inherited Add as TGasItem;
end;

constructor TGasItems.Create;
begin
  inherited Create(TGasItem);
end;

function TGasItems.GetItem(Index: Integer): TGasItem;
begin
  Result := inherited GetItem(Index) as TGasItem;
end;

procedure TGasItems.SetItem(Index: Integer; Value: TGasItem);
begin
  inherited SetItem(Index, Value);
end;

{ TDummy }

constructor TDummy.Create(AOwner: TComponent);
begin
  FItems := TGasItems.Create;
end;

destructor TDummy.Destroy;
begin
  FItems.Free;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品福利一区二区三区| 精品少妇一区二区三区在线视频 | 99精品视频一区| 九九**精品视频免费播放| 亚洲电影中文字幕在线观看| 亚洲精品视频在线观看免费| 樱花草国产18久久久久| 一区二区三区在线观看动漫| 亚洲一区二区在线免费观看视频| 亚洲色欲色欲www| 亚洲嫩草精品久久| 丝袜亚洲另类欧美综合| 免费久久99精品国产| 国产精品一级在线| eeuss影院一区二区三区| 色综合视频在线观看| 欧美日韩一区二区三区高清| 欧美一区二区在线视频| 久久先锋影音av鲁色资源网| 久久精品视频在线免费观看| 亚洲国产精品成人综合色在线婷婷 | 欧美在线观看视频一区二区| 欧美麻豆精品久久久久久| 欧美一区二区视频免费观看| 久久这里只有精品首页| 亚洲欧洲精品天堂一级| 午夜影院久久久| 国产一区二区三区香蕉| 91在线精品一区二区| 欧美日韩免费在线视频| 久久一区二区三区四区| 亚洲欧洲精品天堂一级| 免费xxxx性欧美18vr| 成人蜜臀av电影| 91精品国产综合久久精品图片| 久久人人爽爽爽人久久久| **性色生活片久久毛片| 美女任你摸久久| 91麻豆123| 久久精品视频免费| 日韩中文字幕麻豆| 成人av免费在线| 日韩精品一区二| 亚洲激情成人在线| 国产美女一区二区| 666欧美在线视频| 亚洲男人的天堂在线aⅴ视频| 久久电影网电视剧免费观看| 91传媒视频在线播放| 日本一区二区不卡视频| 久草精品在线观看| 欧美美女一区二区在线观看| **性色生活片久久毛片| 国产伦精品一区二区三区免费迷 | 日韩亚洲国产中文字幕欧美| 中文字幕亚洲一区二区av在线| 免费成人av在线| 欧美日本乱大交xxxxx| 亚洲色图视频网| 成人免费高清在线| xvideos.蜜桃一区二区| 麻豆精品视频在线观看| 91精品免费观看| 亚洲成人精品一区二区| 91在线视频网址| 国产精品理论片| 成人在线一区二区三区| 国产亚洲欧美日韩日本| 国产在线观看一区二区| 欧美mv日韩mv亚洲| 精品中文字幕一区二区| 在线不卡的av| 免费人成在线不卡| 欧美一区二区视频免费观看| 爽爽淫人综合网网站| 欧美一区二区在线免费播放 | 国产人伦精品一区二区| 国产精品中文字幕日韩精品| 2021中文字幕一区亚洲| 激情综合五月婷婷| 久久先锋影音av| 粉嫩av亚洲一区二区图片| 国产人妖乱国产精品人妖| 成人精品鲁一区一区二区| 国产日韩在线不卡| av午夜一区麻豆| 亚洲视频在线一区二区| 欧洲日韩一区二区三区| 午夜欧美大尺度福利影院在线看| 欧美老人xxxx18| 狠狠色狠狠色合久久伊人| 久久久精品国产免费观看同学| 国产成人欧美日韩在线电影| 17c精品麻豆一区二区免费| 色综合视频在线观看| 午夜久久久久久久久久一区二区| 日韩欧美在线一区二区三区| 国内精品久久久久影院色| 国产片一区二区三区| eeuss国产一区二区三区| 亚洲福利视频三区| 久久午夜色播影院免费高清| 99久久久久免费精品国产| 亚洲一区二区在线播放相泽| 精品久久久久久最新网址| 成人午夜碰碰视频| 日韩和欧美一区二区| 久久久久久久精| 欧美怡红院视频| 国产乱子伦视频一区二区三区 | 97久久精品人人做人人爽50路| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美精品一区二区蜜臀亚洲| 国产精品成人免费精品自在线观看 | 欧美性猛交xxxx乱大交退制版| 狠狠色丁香婷综合久久| 亚洲第一激情av| 亚洲天堂免费看| 亚洲同性gay激情无套| 成人免费一区二区三区视频 | 91麻豆精品国产91久久久更新时间 | 欧美成人精品高清在线播放| 51久久夜色精品国产麻豆| 欧美男生操女生| 欧美日韩精品综合在线| 91精品国产综合久久久久久久久久| 在线观看日韩电影| 91精品一区二区三区久久久久久| 日韩一二三区不卡| 精品999久久久| 久久精品一区四区| 1024精品合集| 午夜婷婷国产麻豆精品| 久久综合综合久久综合| 国产成人精品一区二区三区网站观看| 国产精品亚洲成人| 91视频免费看| 欧美精品亚洲一区二区在线播放| 日韩欧美不卡在线观看视频| 国产日韩欧美一区二区三区乱码 | 色综合久久99| 欧美色爱综合网| 精品少妇一区二区三区在线播放| 久久人人爽爽爽人久久久| 1000部国产精品成人观看| 午夜视频一区二区| 国产高清成人在线| 91成人看片片| 日韩免费一区二区| 亚洲视频中文字幕| 另类欧美日韩国产在线| 95精品视频在线| 日韩三级中文字幕| 国产精品国产三级国产普通话蜜臀 | 欧美日本国产视频| 久久综合九色综合久久久精品综合 | 免费在线一区观看| 国产99一区视频免费| 欧美三级中文字幕在线观看| 久久婷婷久久一区二区三区| 一区二区三区中文免费| 国内精品国产成人| 欧美日韩精品一区二区三区四区 | 欧美一区二区精美| 亚洲人妖av一区二区| 看片的网站亚洲| 欧美性色欧美a在线播放| 久久久一区二区| 视频一区中文字幕国产| 91丨porny丨在线| 久久久99精品免费观看| 日本亚洲天堂网| 色哟哟日韩精品| 国产目拍亚洲精品99久久精品| 视频一区视频二区中文字幕| 91麻豆国产自产在线观看| 久久久久久久精| 久久精品国产一区二区| 777a∨成人精品桃花网| 亚洲欧美另类图片小说| a美女胸又www黄视频久久| 精品福利一区二区三区 | 亚洲欧洲三级电影| 国产自产视频一区二区三区| 91精品国产麻豆| 亚洲国产色一区| 色欧美片视频在线观看| 国产精品乱人伦中文| 丰满亚洲少妇av| 久久婷婷色综合| 国产激情视频一区二区在线观看| 欧美一区二区三区视频| 日韩电影免费一区| 在线成人小视频| 日本亚洲最大的色成网站www| 7777精品伊人久久久大香线蕉超级流畅 | 日日摸夜夜添夜夜添国产精品| 日本高清无吗v一区| 亚洲另类在线视频| 欧美综合在线视频|