Thread View: pl.comp.lang.delphi
6 messages
6 total messages
Started by ExM
Tue, 17 Apr 2018 08:10
Czy konieczne przeciążenie?
Author: ExM
Date: Tue, 17 Apr 2018 08:10
Date: Tue, 17 Apr 2018 08:10
12 lines
1880 bytes
1880 bytes
Mam taką zagwozdkę - czy to można zrobić prościej. Mam (dla przykładu) procedurę która np. zmienia położenie różnych obiektów: procedure Przesun(Left, Top: Integer; var Obiekt: TButton); overload; procedure Przesun(Left, Top: Integer; var Obiekt: TEdit); overload; Obie te procedury robią to samo - tzn.zmieniają ten sam odziedziczony parametr: Top i Left tylko na obiektach różnego typu. Czy można zrobić jedną procedurę która obsłuży oba typy obiektów na raz? Teoretycznie przekazując parametr "Obiekt" mógłbym go rzutować - ale to też jakoś mi się nie podoba :) ExM
Re: Czy konieczne przeciążenie?
Author: Piotr S.
Date: Tue, 17 Apr 2018 09:41
Date: Tue, 17 Apr 2018 09:41
18 lines
1605 bytes
1605 bytes
W dniu 2018-04-17 o 10:10, ExM pisze: > Mam taką zagwozdkę - czy to można zrobić prościej. > Mam (dla przykładu) procedurę która np. zmienia położenie różnych obiektów: > > procedure Przesun(Left, Top: Integer; var Obiekt: TButton); overload; > procedure Przesun(Left, Top: Integer; var Obiekt: TEdit); overload; > > Obie te procedury robią to samo - tzn.zmieniają ten sam odziedziczony parametr: Top i Left tylko na obiektach różnego typu. > > Czy można zrobić jedną procedurę która obsłuży oba typy obiektów na raz? > Teoretycznie przekazując parametr "Obiekt" mógłbym go rzutować - ale to też jakoś mi się nie podoba :) > > ExM > Generyki P.S.
Re: Czy konieczne przeciążenie?
Author: Tomek D
Date: Tue, 17 Apr 2018 12:21
Date: Tue, 17 Apr 2018 12:21
28 lines
1837 bytes
1837 bytes
W dniu 17.04.2018 o 11:41, Piotr S. pisze: > W dniu 2018-04-17 o 10:10, ExM pisze: >> Mam taką zagwozdkę - czy to można zrobić prościej. Mam (dla >> przykładu) procedurę która np. zmienia położenie różnych obiektów: >> >> procedure Przesun(Left, Top: Integer; var Obiekt: TButton); >> overload; procedure Przesun(Left, Top: Integer; var Obiekt: TEdit); >> overload; >> >> Obie te procedury robią to samo - tzn.zmieniają ten sam >> odziedziczony parametr: Top i Left tylko na obiektach różnego >> typu. >> >> Czy można zrobić jedną procedurę która obsłuży oba typy obiektów na >> raz? Teoretycznie przekazując parametr "Obiekt" mógłbym go rzutować >> - ale to też jakoś mi się nie podoba :) >> >> ExM >> > > Generyki Z armaty do wróbla.... procedure Przesun(Left, Top: Integer; var Obiekt: TControl); TButton i TEdit dziedziczą z TControl; Tomek D.
Re: Czy konieczne przeciążenie?
Author: Piotr S.
Date: Tue, 17 Apr 2018 12:24
Date: Tue, 17 Apr 2018 12:24
13 lines
1244 bytes
1244 bytes
W dniu 2018-04-17 o 14:21, Tomek D pisze: > > Z armaty do wróbla.... > procedure Przesun(Left, Top: Integer; var Obiekt: TControl); > > TButton i TEdit dziedziczą z TControl; > > Tomek D. Dla tego przykładu tak. Co innego jak nie będą dziedziczyć ze wspólnej klasy. P.S.
Re: Czy konieczne przeciążenie?
Author: Roman Tyczka
Date: Tue, 17 Apr 2018 17:32
Date: Tue, 17 Apr 2018 17:32
16 lines
1416 bytes
1416 bytes
On Tue, 17 Apr 2018 11:41:35 +0200, Piotr S. wrote: >> procedure Przesun(Left, Top: Integer; var Obiekt: TButton); overload; >> procedure Przesun(Left, Top: Integer; var Obiekt: TEdit); overload; >> >> Czy można zrobić jedną procedurę która obsłuży oba typy obiektów na raz? >> Teoretycznie przekazując parametr "Obiekt" mógłbym go rzutować - ale to też jakoś mi się nie podoba :) >> > > Generyki A jak byś to rozwiązał generykami? -- pozdrawiam Roman Tyczka
Re: Czy konieczne przeciążenie?
Author: Marek
Date: Wed, 18 Apr 2018 06:46
Date: Wed, 18 Apr 2018 06:46
12 lines
1278 bytes
1278 bytes
W dniu 2018-04-17 o 10:10, ExM pisze: > Mam taką zagwozdkę - czy to można zrobić prościej. > Mam (dla przykładu) procedurę która np. zmienia położenie różnych obiektów: > > procedure Przesun(Left, Top: Integer; var Obiekt: TButton); overload; > procedure Przesun(Left, Top: Integer; var Obiekt: TEdit); overload; A "var" to po co? -- Pzdr. Marek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads