Domů
Nápověda
Přihlásit
Registrovat
Vítejte
Host
. Prosím
přihlašte se
nebo
zaregistrujte
.
Forum Delphi.cz
»
Delphi
»
Obecné
»
jak na kopii objektu
« předchozí
další »
Tisk
Stran: [
1
]
Dolů
Autor
Téma: jak na kopii objektu (Přečteno 3731 krát)
anec
Mladík
Příspěvků: 99
Karma: 3
jak na kopii objektu
«
kdy:
06-11-2019, 16:13:30 »
vytvoril jsem
Tmujbutton=class(tWinControl)
abutton:tbuton;
alabel: tlabel;
cislo:integer;
text:string;
constructor create;
end;
tmujbutton.create
begin
abutton:=tbutton.create;
alabel :=tlabel.cretae;
cislo:=0;
text:='';
end;
da se cely tento objekt nejak jednoduse zkopirovat? kopie vsech vlastnosti metod pripadnych subobjektu proste vse
mam
je na to nejaka funkce nebo si to musim vsechno napsat rucne?
díky
m1,m2:tmujobjekt;
m1:=tmujobjekt.create;
m2:=tmujobjekt.create;
m1.cislo:=25;
m1.abutton.onclick:=udejklik;
m2.copyallfrom(m1)
m1.cislo:=26;
takze ted bude v
m1.cislo 26 a v m2.cislo bude 25 a onclick a button.onclick bude vlastn stejny
«
Poslední změna: 06-11-2019, 16:17:36 od anec
»
IP zaznamenána
Stanislav Hruška
Padawan
Příspěvků: 5615
Karma: 42
Verze Delphi: W10 + Delphi 10.4 professional
Re:jak na kopii objektu
«
Odpověď #1 kdy:
06-11-2019, 17:02:29 »
V prvom rade by si mal písať čitateľne a používať jednoznačné názvy. Tmujbutton a potom tmujobjekt; Kto sa v tom má vyznať?
K veci
Asi by bolo vhodnejšie Tmujbutton=class(TComponent)
A najlepšie by bolo vytvoriť si vlastný komponent
Alebo použiť/kúpiť TSM. A nebudeš riešiť takéto veci
Keďže hodnoty prideľuješ dynamicky, tak inú cestu nemáš
Ešte je možnosť (nevieme čo všetko máš v zámere) odvádzať si podľa potreby potomkov
IP zaznamenána
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.
Stanislav Hruška
Padawan
Příspěvků: 5615
Karma: 42
Verze Delphi: W10 + Delphi 10.4 professional
Re:jak na kopii objektu
«
Odpověď #2 kdy:
06-11-2019, 17:09:06 »
Zabudol som na
Citace
button.onclick bude vlastn stejny
Tak si definuj a priraď už v základnej triede. Ale tak, aby sa to dalo potom preťažiť.
IP zaznamenána
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.
anec
Mladík
Příspěvků: 99
Karma: 3
Re:jak na kopii objektu
«
Odpověď #3 kdy:
06-11-2019, 17:20:10 »
díky za reakci, toto byl jen příklad toho o co mi jde.
jde mi o to jestli jde jednoduše kopírovat obsah objektu (obsah = jakýkoliv objekt, string, cokoliv, díky )
IP zaznamenána
Stanislav Hruška
Padawan
Příspěvků: 5615
Karma: 42
Verze Delphi: W10 + Delphi 10.4 professional
Re:jak na kopii objektu
«
Odpověď #4 kdy:
06-11-2019, 17:38:04 »
Existuje Assign. Ak to nepoznáš, tak si o tom prečítaj. Možno to je to čo hľadáš. A možno nie.
IP zaznamenána
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.
starous
Mladík
Příspěvků: 94
Karma: 2
Verze Delphi: Delphi 7, Delphi 10.4
Re:jak na kopii objektu
«
Odpověď #5 kdy:
06-11-2019, 18:57:27 »
Zkus použít tohle:
https://github.com/spinettaro/delphi-event-bus/blob/master/source/external/RTTIUtilsU.pas
Jsou tam definovány metody Clone a CopyObject. Využívá to rozšířených vlastností RTTI v novějších Delphi (zřejmě od verze 2010).
IP zaznamenána
Tisk
Stran: [
1
]
Nahoru
« předchozí
další »
Forum Delphi.cz
»
Delphi
»
Obecné
»
jak na kopii objektu