- 相關(guān)推薦
多屏卡編程實例
多屏卡編程實例
對多屏卡進行編程與在一個單屏上編程沒有大的區(qū)別,只是可訪問的地址更大一些,另一點就是一定要按地址準(zhǔn)確地訪問,避免一幅圖片被兩個屏幕分割開來。下面是一個利用多屏卡進行編程的小例子,用delphi實現(xiàn)。在這個例子中,用到兩個顯示屏,以2×1排列,這樣第一屏幕的地址為(0,0,768,1024),而第二個屏的地址為(0,1024,768,2048)。在這個例子中,第一個屏幕為控制界面,第二個屏幕為顯示界面。在第一個屏幕可以打開一個圖片,然后在第二個屏幕顯示這個圖片,也可以采用百葉窗的方式將第二個屏幕上原有的圖片切換為第一屏中的圖片。
首先創(chuàng)建一個工程,在Form1上添加一個TPanel控件(Panel1),Panel1上再加一個TImage控件(Image1),另外Form1上再添加四個TBitBtn控件(BitBtn1、BitBtn2、BitBtn3、BitBtn4,Caption值分別為"打開文件"、"直接寫屏"、"百葉窗"、"退出",其中BitBtn3的Enabled的值為False)、一個TLabel控件(Label1,Caption為"窗格數(shù)量")、一個TEdit控件(Edit1,Text為"30")、一個圖形文件打開對話框(OpenPictureDialog1)和一個TTimer控件(Timer1,Interval值為100)。Form1的最后界面見圖1。
Form1是第一個屏幕上的控制界面,對于第二個屏幕上的顯示界面應(yīng)再創(chuàng)建一個新的窗體Form2,上面添加一個TImage控件(Image1,Height值為768,Width值為1024),F(xiàn)orm2的AutoSize屬性設(shè)為True, BorderStyle屬性設(shè)為bsNone。
Unit1的說明部分如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, ExtDlgs;
type
TForm1 = class(TForm)
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
Close;
end;
例子中還有兩點需要說明的問題:1、為簡便起見,例子中打開文件時使用的是系統(tǒng)提供的控件,因此首次打開文件時,對話框會自動居中(即位于兩個屏幕的中間,一半在第一屏上,一半在第二屏上),這時只要將其拖回至第一屏,以后打開文件將不再會有影響。當(dāng)然在實用的程序中還是應(yīng)自己寫一段打開文件的對話框。2、在用百頁窗方式時,欲切換的圖像的大小必與顯示器的分辯率相一致,如當(dāng)顯示器分辯率為1024×768時,圖像大小也必須為1024×768。
上述代碼在Windows98/Windows2000、delphi5.0下編譯通過。
【多屏卡編程實例】相關(guān)文章:
數(shù)控車床加工編程典型實例08-12
組網(wǎng)實例08-12
履歷的實例08-15
《說“屏”》08-16
編程的心得09-13
水墨風(fēng)屏08-15
《說“屏”》 108-16
《說“屏”》 208-16
《說“屏”》 308-16
《說“屏”》 408-16