Nhúng file vào Excel với control BSStreamX trong BSAC - play mp3

Liên hệ QC
Kỹ thuật BSStream(X) là lớp đối tượng giao tiếp truyền dữ liệu với các control trong BSAC như BSImage, BSImageList, BSGraphic,... và các giao tiếp stream từ những dịch vụ bên ngoài. Ví dụ trong chủ đề này chỉ là nhúng một hay nhiều file lưu trên worksheet hay Userform chỉ là một ứng dụng nhỏ. Trao đổi khối dữ liệu trong BSStream bản chất là kỹ thuật xử lý memory để đảm bảo tốc độ chạy nhanh.
 
Vâng anh nói đúng
Tại sao em nói chèn nguyên cái File đơn giản hơn cái láy tên. tự vì nguyên cái File mình xác định bộ nhớ lưu từ địa chỉ A đến địa chỉ B. Còn láy 1 đoạn text thì em phải xác định được điểm bắt đầu A và kết thúc B của đoạn text đó trong địa chỉ của bộ nhớ.
 
1/ Thực ra cài mà xài hoặc Copy File *.OCX đó vào System xài là tốt nhất
Mang tập tin Excel đã có nhúng gì đó sang máy nào thì máy ấy phải có đang ký cái thư viện kia thì mới chạy được chứ không thì chạy bằng niềm tin à? Nói là không cần mang gì theo nhưng thực chất không phải hoàn toàn như vậy. Cũng có chút phiền phức.
2/ nếu nhúng vào files Excel thì nó cỏng thêm cái File đó vào nặng lắm VD: File OCX đó = 3M thì = Excel + 3M = ???
nặng lắm .... chỉ làm biếng thì mới làm vậy thôi ( Vì Mạnh đã thử cách nhúng theo chỉ dẫn của Anh @batman1 trên GPE này ròi )
Cái tôi đưa ra 7 - 8 năm trước là do tò mò xem cách "nhúng" mọi tập tin (ảnh, video, nhị phân ...) vào tập tin Excel để khỏi phải "đính kèm" bên ngoài. Tất nhiên ngoài code thì không có cái gì phải đăng ký trong system. Viết chơi thôi, chứ nhúng cả 1 video vd. 200 MB vào tập tin Excel thì dã man quá.
 
Mang tập tin Excel đã có nhúng gì đó sang máy nào thì máy ấy phải có đang ký cái thư viện kia thì mới chạy được chứ không thì chạy bằng niềm tin à? Nói là không cần mang gì theo nhưng thực chất không phải hoàn toàn như vậy. Cũng có chút phiền phức.

Cái tôi đưa ra 7 - 8 năm trước là do tò mò xem cách "nhúng" mọi tập tin (ảnh, video, nhị phân ...) vào tập tin Excel để khỏi phải "đính kèm" bên ngoài. Tất nhiên ngoài code thì không có cái gì phải đăng ký trong system. Viết chơi thôi, chứ nhúng cả 1 video vd. 200 MB vào tập tin Excel thì dã man quá.
Em đoán thôi nhé ... sai thì bỏ qua
1/ khi Excel Load ( Mở lên ) thì nó căng mình lên tính toán mọi thứ trên Cells + Code nếu File quá nhiều Hàm mảng thì nó mở lên cũng rất lâu hay quá nhiều code hình như cũng thế ???!!!

2/ cụ thể là Em có 3 File quản lý bán hàng khác nhau (QLBH)
- File QLBH viết hoàn toàn code ngay trong Excel ( rất nhiều ) nó chạy rất chậm

- Cũng như dòng trên mà code trong viết hết code vào DLL VB6 chỉ làm thử tục keo từ Excel thấy nó chạy nhanh hơn rất nhiều

- cũng như dòng trên Nhưng Code trong DLL API viết = Delphi thấy chạy ngang với VB6

cả 3 File trên điều chung một mục đích y trang nhau vì Em viết trên VBA trước xong cho y trang thế vào VB6 ... sau này biết Delphi thì thêm File thứ 3 Viết DLL Delphi ( chỉ là vừa làm vừa học thôi )

.... Lý do tại sao Em tịt ... chỉ thấy thực tế là thế

Quay lại bài này mà nhúng File khoảng 200M vào Excel xong mở lên ra pha cafe nói dóc đã đời xong vào ngó xem quá ??!!!
 
Lần chỉnh sửa cuối:
Tốc độ mở file phụ thuộc vào data trong file và công thức nhé. Nguyên tắc Excel khi mở ra thì mọi thứ nó có đều phải đọc ra hết. Ứng dụng nhứng là nhúng cái cần thiết chứ không phải cắm đầu nhúng mọi thứ mà loạn :).
 
Em thấy máy cái kỹ thuật này mấy ông h@ rành lắm
 
Em thấy máy cái kỹ thuật này mấy ông h@ rành lắm

BSAC là ActiveX Controls vừa code API, VCL Ole,... để nó nhúng trong các môi trường lập trình, nó không đơn thuần chỉ là code trong môi trường Delphi và chạy độc lập dạng EXE hay DLL.
 
Mạnh thấy mấy trang tây nó nói là nhúng DLL Or OCX trong DLL viết = Delphi được đấy ( Hình như tăng thêm 1 cấp bảo mật DLL thì phải)

Còn Viết DLL trong DLL = Dephi Mạnh cũng đã thử thấy Ok thay Vì Uses Unitx thì khai báo nó như 1 DLL bình thường xong keo kiểu khai báo API là xong
Tuy nhiên cách đó ko biết nó có tác dụng gì thì Ứ có biết là như thế Nào ??????????????!!!!!!!!!!!!! -0-0-0-

VD Form
Mã:
unit MainForm;

interface

uses
  ShellApi, Messages, Windows,
  SysUtils, Classes, Controls, Forms, StdCtrls, Graphics, ExtCtrls;

type
  TMain = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);

  private
  public
  end;

var
  Main: TMain;

Procedure VoirMessage; stdcall; external 'ChargerUneDllSansDll.exe';

implementation

{$R *.dfm}
{$R rsrc\billit.res}

procedure TMain.FormCreate(Sender: TObject);
begin
  Position := poScreenCenter;
  Main.BorderIcons := [biSystemMenu] - [biMiniMize] - [biMaximize];
  BorderStyle := bsSingle;
end;

procedure TMain.Button1Click(Sender: TObject);
begin
  VoirMessage;
end;

end.
Trong Unit
Mã:
unit DLL_unit;

interface

uses
  Vcl.Dialogs,
  Windows;

implementation

Procedure VoirMessage;
begin
  // MessageBoxA(0, PChar('coucou'), PChar('Je suis la procedure'), MB_ICONINFORMATION);
  ShowMessage('Call Load DLL In DLL');
end;

Exports VoirMessage;

end.
 
Mạnh thấy mấy trang tây nó nói là nhúng DLL Or OCX trong DLL viết = Delphi được đấy ( Hình như tăng thêm 1 cấp bảo mật DLL thì phải)

Còn Viết DLL trong DLL = Dephi Mạnh cũng đã thử thấy Ok thay Vì Uses Unitx thì khai báo nó như 1 DLL bình thường xong keo kiểu khai báo API là xong
Tuy nhiên cách đó ko biết nó có tác dụng gì thì Ứ có biết là như thế Nào ??????????????!!!!!!!!!!!!! -0-0-0-

VD Form
Mã:
unit MainForm;

interface

uses
  ShellApi, Messages, Windows,
  SysUtils, Classes, Controls, Forms, StdCtrls, Graphics, ExtCtrls;

type
  TMain = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);

  private
  public
  end;

var
  Main: TMain;

Procedure VoirMessage; stdcall; external 'ChargerUneDllSansDll.exe';

implementation

{$R *.dfm}
{$R rsrc\billit.res}

procedure TMain.FormCreate(Sender: TObject);
begin
  Position := poScreenCenter;
  Main.BorderIcons := [biSystemMenu] - [biMiniMize] - [biMaximize];
  BorderStyle := bsSingle;
end;

procedure TMain.Button1Click(Sender: TObject);
begin
  VoirMessage;
end;

end.
Trong Unit
Mã:
unit DLL_unit;

interface

uses
  Vcl.Dialogs,
  Windows;

implementation

Procedure VoirMessage;
begin
  // MessageBoxA(0, PChar('coucou'), PChar('Je suis la procedure'), MB_ICONINFORMATION);
  ShowMessage('Call Load DLL In DLL');
end;

Exports VoirMessage;

end.

Ví dụ này là cách viết API mà tôi đã hướng dẫn ngày đầu giới thiệu Delphi trên GPE này chứ có cái gì ghê lạ đâu.Trong video dưới đây có doạn mình hướng dẫn cả khai báo hàm API trong Delphi để chơi chạy file nhạc MP3.
 
Ví dụ này là cách viết API mà tôi đã hướng dẫn ngày đầu giới thiệu Delphi trên GPE này chứ có cái gì ghê lạ đâu.Trong video dưới đây có doạn mình hướng dẫn cả khai báo hàm API trong Delphi để chơi chạy file nhạc MP3.
Mạnh thấy mấy trang tây nó nói là nhúng DLL Or OCX trong DLL viết = Delphi được đấy ( Hình như tăng thêm 1 cấp bảo mật DLL thì phải)

Cho Mạnh hỏi chút dòng trên đoán vậy đúng ko ... chắc nó có tác dụng gì chứ ???!!! đã từng nghe mấy trang mạng keo bộ gõ tiếng việt UniKeyNT.EXE có nhúng DLL ngay trong nó để tăng mức độ bảo mật DLL
 
Mạnh thấy mấy trang tây nó nói là nhúng DLL Or OCX trong DLL viết = Delphi được đấy ( Hình như tăng thêm 1 cấp bảo mật DLL thì phải)

Cho Mạnh hỏi chút dòng trên đoán vậy đúng ko ... chắc nó có tác dụng gì chứ ???!!! đã từng nghe mấy trang mạng keo bộ gõ tiếng việt UniKeyNT.EXE có nhúng DLL ngay trong nó để tăng mức độ bảo mật DLL

Xét ở góc độ che giấu cái gì đó thì cũng có thể tạm là coi bảo mật. Chỉ phù hợp những DLL không phải chạy đăng ký dạng RegSvr32 thì chỉ khai báo lấy hàm API bằng GetAddressProc thì dùng kiểu đó hoàn toàn được. Nhưng với điều kiện là nó link trong bộ nhớ, nếu nó bung save ra file có mã máy thì các pm diệt virus dễ coi là độc hại đấy.
 
BSAC là ActiveX Controls vừa code API, VCL Ole,... để nó nhúng trong các môi trường lập trình, nó không đơn thuần chỉ là code trong môi trường Delphi và chạy độc lập dạng EXE hay DLL.
/-*+/ để em rãnh rỗi mò qua cái ActiveX Controls đợt VB6 em cũng mò được vài cái ActiveX Control made in Thuyyeu99 :type:
 
Không biết ActiveX Control trên Delphi khó không nữa .... khi nào rảnh cũng bắt Trước viết mò viết 1 cái Bốc tông coi .............. -0-0-0-
 
MỚi thử xong cái OCX thì thấy có ròi đấy ... vẻ cũng có trên Form VBA ròi đấy .......................... có điều nó ko giống thằng tây nào cả ... -0-0-0-
 
Web KT
Back
Top Bottom