Você está na página 1de 3

var ct, left, top: integer; bt: TBitBtn; begin ClientDataSet1.Open; ct := 0; left := 1; top := 1; while (not ClientDataSet1.

Eof) do begin // Criando dinamicamente um componente TBitBtn bt := TBitBtn.Create(Self); // Propriedade "Parent" indica que o boto criado // ser colocado sobre o objeto atual (Self = Form1) bt.Parent := Self; // Associa o procedimento de evento "Janela" ao // evento "OnClick" do boto criado bt.OnClick := Janela; // Carregando a imagem do evento no boto bt.Glyph.Assign(ClientDataSet1.FieldByName('Event_Photo')); bt.Caption := ClientDataSet1.FieldByName('Event_Name').AsString; bt.Layout := blGlyphTop; bt.Height := 180; bt.Width := 260; bt.Left := left; bt.Top := top; left := left + 261; ct := ct + 1; // Controla a criao de 6 botes por linha if (ct = 6) then begin left := 1; top := top + 181; ct := 0; end; ClientDataSet1.Next; end; ClientDataSet1.Close; end;

type TForm1 = class(TForm) ClientDataSet1: TClientDataSet; procedure FormCreate(Sender: TObject); procedure Janela(Sender: TObject); private

{ Private declarations } public { Public declarations } end;

procedure TForm1.Janela(Sender: TObject); var fr: TForm; im: TImage; begin // Criando dinamicamente um formulrio fr := TForm.Create(nil); // Sender indica o objeto boto que chamou este procedimento de evento // o operador "as" efetua o cast do objeto Sender do tipo TObject // para trat-lo como um objeto relacionado TBitBtn fr.Caption := (Sender as TBitBtn).Caption; fr.Position := poScreenCenter; // Criando dinamicamente um componente TImage im := TImage.Create(fr); im.Parent := fr; im.Align := alClient; im.Center := True; // Carregando a imagem do boto no componente TImage criado im.Picture.Assign((Sender as TBitBtn).Glyph); fr.ShowModal; fr.Free; end; Leia mais em: Criao de Componentes em Tempo de Execuo http://www.devmedia.com.br/cri acao-de-componentes-em-tempo-de-execucao/22946#ixzz2wZ9iOCAW

Leia mais em: Criao de Componentes em Tempo de Execuo http://www.devmedia.com.br/cri

acao-de-componentes-em-tempo-de-execucao/22946#ixzz2wZ8BbcI3

Você também pode gostar