點燈遊戲 乙個動態建立元件的示例

2021-05-23 18:32:00 字數 2481 閱讀 5891

點燈遊戲--乙個動態建立元件的示例

tips : 在動態建立元件時, parent屬性設定很重要, 如果不設定, 元件是不能顯示的~~ 呵呵, 這個是易犯的低階錯誤, 至少對我來說.

unit ulamp;

inte***ce

uses

windows, messages, sysutils, variants, classes, graphics, controls, forms,

dialogs, extctrls;

type

tformlamp = class(tform)

procedure formcreate(sender: tobject);

procedure formdestroy(sender: tobject);

private

public

protected

procedure panelclickhandle(sender: tobject);

end;

function isfinished: boolean;

var formlamp: tformlamp;

lamppanel : array[0..24] of tpanel;

implementation

function isfinished: boolean;

var i: integer;

begin

result := true;

for i := 0 to 24 do

begin

if (lamppanel[i].color = $006060) then result := result and false;

end;

end;

procedure tformlamp.panelclickhandle(sender: tobject);

var x,y: integer;

thistag: integer;

begin

thistag := (sender as tpanel).tag;

x := thistag div 5;

y := thistag mod 5;

lamppanel[thistag].color := $ffffff - lamppanel[thistag].color;

if (y>0) then lamppanel[x*5+y-1].color := $ffffff - lamppanel[x*5+y-1].color;

if (x>0) then lamppanel[(x-1)*5+y].color := $ffffff - lamppanel[(x-1)*5+y].color;

if (y<4) then lamppanel[x*5+y+1].color := $ffffff - lamppanel[x*5+y+1].color;

if (x<4) then lamppanel[(x+1)*5+y].color := $ffffff - lamppanel[(x+1)*5+y].color;

// 檢查是否都點亮

if isfinished then showmessage('你真行, 所有的燈都點亮了!!');

//(sender as tpanel).color := $ffffff - (sender as tpanel).color;

end;

procedure tformlamp.formcreate(sender: tobject);

var i,j: integer;

begin

position := poscreencenter;

for i := 0 to 4 do

for j := 0 to 4 do

begin

lamppanel[i * 5 + j] := tpanel.create(self);

with lamppanel[i * 5 + j] do

begin

tag := i * 5 + j;

caption := inttostr(tag);

parent := self;

top := 70 + i * 60;

left := 100 + j * 50;

width := 55;

height := 55;

color := $006060;

onclick := panelclickhandle;

end;

end;

end;

procedure tformlamp.formdestroy(sender: tobject);

var i : integer;

begin

for i := 0 to 24 do

if lamppanel[i] <> nil then lamppanel[i].free;

end;

end.

關於建立乙個元件的步驟

關於建立乙個元件的步驟 要實現你的元件,按如下常規的步驟 1.如果需要,建立元件的任何skins 2.建立乙個as類檔案 a.從基類擴充套件乙個類,如uicomponent或別的元件類 b.指定你可以在mxml標籤裡設定的屬性 c.嵌入任何圖形和skin檔案。d.實現建構函式 e.實現uicompo...

js vue 建立乙個div vuejs元件

一 什麼是元件?元件 component 是vue.js最強大的功能之一。元件可以擴充套件html元素,封裝可重用的 在較高層面上,元件是自定義元素,vue.js的編譯器為它新增特殊功能。在有些情況下,元件也可以表現為用is特性進行了擴充套件的原生html元素。總結 元件是用來完成特定功能的乙個自定...

建立乙個簡單的WebPart應用示例

建立webpart的簡單應用並不困難,在建立webpart簡單應用之前先介紹一下web部件的核心 webpartmanager。webpartmanager簡介 webpartmanager 控制項用作 web 部件應用程式的中心或控制中心。在使用 web 部件控制項的每一頁上,都必須有且僅有乙個 ...