Lazarus 3.2 (2024.02.28.)
Letöltés

  • Oldal:
  • 1

TÉMA:

Válasz:objektum futási időben 2015 jan. 31 13:51 #1461

  • Gábor
  • Gábor profilkép
  • Adminisztrátor
  • Adminisztrátor
  • Hozzászólások: 506
  • Köszönetek: 86
A panelen lévő vezérlőket szép sorban újra létre kell hozni, a tulajdonságaikat pedig átmásolni. Valahogy így:
procedure VezerlokMasolasa(Forras,Cel:TWinControl);
var
  I:Integer;
  C:TControl;
begin
  for I:=0 to Forras.ControlCount - 1 do 
  begin
    C:=TControl.Create(Cel);
    C.Parent:=Cel;
    C.Left:=Forras.Controls[i].Left;
    C.Top:=Forras.Controls[i].Top;
    {...és a többi}
  end;
end;
Fontos: nem minden TControl leszármazott rendelkezik minden tulajdonsággal.
Hogyan kérdezzünk okosan? / Mit kell tennünk kérdezés előtt? -- Lazarus 3.0 -- FPC 3.2-- GNU/Linux 5.15.0 x86_64

Válasz:objektum futási időben 2015 jan. 31 00:13 #1455

  • sa781207
  • sa781207 profilkép
  • Új tag
  • Új tag
  • Hozzászólások: 16
  • Köszönetek: 0

sa781207 írta: Kódot kérnék, lazarus verziót gép paramétert és megpróbálom én is.


Win 7 prof legújabb lazarus

Válasz:objektum futási időben 2015 jan. 30 23:58 #1454

  • sa781207
  • sa781207 profilkép
  • Új tag
  • Új tag
  • Hozzászólások: 16
  • Köszönetek: 0
Kódot kérnék, lazarus verziót gép paramétert és megpróbálom én is.

Válasz:objektum futási időben 2015 jan. 29 17:45 #1451

  • tothlevo
  • tothlevo profilkép
  • Új tag
  • Új tag
  • Hozzászólások: 8
  • Köszönetek: 0
Én most megcsináltam ugyan ezt egy panellel. Gombnyomásra el is készül. De azt hogyan tudom elérni, hogy a panel tulajdonságait is örökölje? Tehát ha van rajt pl label, vagy editbox, akkor azok is létrejöjjenek az új paneleken...

Válasz:objektum futási időben 2010 nov. 19 20:39 #640

  • harrichy
  • harrichy profilkép Témaindító
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 44
  • Köszönetek: 0
ok működik!!
köszönöm a gyors választ....

Válasz:objektum futási időben 2010 nov. 19 20:05 #639

  • ejbenjaro
  • ejbenjaro profilkép
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 66
  • Köszönetek: 4
Ezt a sort ( pr.OnClick:=tform1.prclick; ) szerintem inkább így írd: pr.OnClick:=@tform1.prclick; De az is lehet, h még a tform1 sem kell elé, hanem csak simán így is fog működni: pr.OnClick:=@prclick;

Azt pedig, hogy melyik i gombra lett kattintva megoldhatod úgy, hogy ha az adott gomb tag propertyjét feltöltöd az i változóval, aztán amikor vizsgálod, hogy melyik gomb ez akkor pl csinálhatsz valami ilyet:
[...]
if (Sender as TButton).Tag=1 then akármi
[...]
Korábban csináltam egy ilyen strigulázó programot ahol a te problémádhoz hasonló dolgot kellett megoldanom, ha gondolod nézd meg. A cuccot innen tudod letölteni : vadaszpeter.blogja.net/ccount/click.php?id=6
Mottó:
"Az ember sokszor más mint aminek látszik. De ritkán jobb..."
--
Gép : Asus P5G41T-M LX, Intel Celeron DC E3400, 4GB DDR3, 320GB SATA2, minden más integrált.
OS : Ubuntu 14.04
--
web: lassuviz.blogspot.hu/

objektum futási időben 2010 nov. 19 16:42 #638

  • harrichy
  • harrichy profilkép Témaindító
  • Haladó forumozó
  • Haladó forumozó
  • Hozzászólások: 44
  • Köszönetek: 0
Sziasztok
futási időben szeretnék létrehozni nyomógombokat és a click eseményeikre reagálni.Az objektumokat létre tudom hozni futási időben ,de nem tudom az onclick eseményt kezeli,meg arra
is szükszégem lenne hogy melyik (i) gombra lett kattintva
tud valaki segíteni?

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

{ TForm1 }

TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
procedure prClick(Sender:TObject);
public
{ public declarations }
end;

var
Form1: TForm1;
pr:array[1..100] of tbutton;
i:integer;
implementation

{$R *.lfm}


{ TForm1 }
procedure TForm1.prClick(Sender:TObject);
begin
showmessage('gomb megnyomva');

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
for i:=1 to 20 do
begin
pr:=tbutton.Create(self);
pr.parent:=self;
pr.Width:=20;pr.Height:=20;pr.Top:=20*i;pr.Left:=20;
pr.OnClick:=tform1.prclick;

end;
end;

end.

wrong number of paraméter hibával leáll..

  • Oldal:
  • 1