Fórum listbox create #269063
17/02/2005
0
MinhaUnit.pas
===============================================
procedure CriaListbox(form1: TForm);
begin
listbox:= TListBox.Create(Form1);
Parent := Form1;
listbox.onDrawItem:= desenhaItem;
end;
procedure desenhaItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
Pinta item do listbox
end;
ele dá pau porque nao to passando os parametros em
listbox.onDrawItem:= desenhaItem(......);
so que como irei passar estes parametros.....lembrando que isto e uma unit.....nao form
===============================================
procedure CriaListbox(form1: TForm);
begin
listbox:= TListBox.Create(Form1);
Parent := Form1;
listbox.onDrawItem:= desenhaItem;
end;
procedure desenhaItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
Pinta item do listbox
end;
ele dá pau porque nao to passando os parametros em
listbox.onDrawItem:= desenhaItem(......);
so que como irei passar estes parametros.....lembrando que isto e uma unit.....nao form
Delphi_open
Curtir tópico
+ 0
Responder
Posts
17/02/2005
Beppe
O ´pau´ é que um evento exige um método(que por definição está implementado em uma classe).
Está um pouco incompleto o código que passou, mas eu dei uma ´incrementada´:
Perceba o primeiro parâmetro da rotina desenhaItem. Ele receberá o valor de OnDraw.Data.
[]´s
Está um pouco incompleto o código que passou, mas eu dei uma ´incrementada´:
var listbox: TListBox; procedure desenhaItem(Sender: TObject; Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin // pode remover esta linha TForm(Sender).Caption := Control.ClassName; end; procedure CriaListbox(form1: TForm); var OnDraw: TMethod; begin listbox:= TListBox.Create(Form1); listbox.Parent := Form1; listbox.Style := lbOwnerDrawFixed; // pode remover estas 2 linhas listbox.Items.Add(´um´); listbox.Items.Add(´dois´); OnDraw.Code := @desenhaItem; OnDraw.Data := form1; listbox.onDrawItem:= TDrawItemEvent(ondraw); end; procedure TForm1.Button1Click(Sender: TObject); begin CriaListbox(Self); end;
Perceba o primeiro parâmetro da rotina desenhaItem. Ele receberá o valor de OnDraw.Data.
[]´s
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)