Przenoszenie ustawien z komponentu do kompnentu IDHTTP

0

Witam serdecznie!
Chciałbym się zapytać w jaki sposób można "Przenieść" ustawienia i inne elementy z jednego komponentu do drugiego. Chodzi mi o komponent IDHTTP.
Przykładowo mam idhttp1 i poustawiałem sobie różne rzeczy, komponent ten zapamiętał już ciasteczka z jakiejś strony itp. I teraz pytanie. Jak to wszystko przenieść na nowy komponent utworzony dynamicznie idhttp2?

wiadomo że nie robi się tego poprzez

idhttp2 := idhttp1;

bo wtedy kazda operacja na idhttp2 wpłynie na idhttp1 i na odwrót. Do tego sa problemy jak zacznie się używac kilku na raz tak utworzonych. Chciałbym tworzyć wiele takich dynamicznych komponentów które były by kopią tego pierwszego czyli idhttp1 i każdy z nich działałby niezależnie. Prosto mówiąc: skopiować komponent.

Prosze o pomoc.
Pozdrawiam!

0

tak to tylko w erze. Nie jesteś w stanie przenieść np. prywatnych danych klasy jeśli nie zapewnił tego autor klasy. Nawet jakby się udało coś takiego to i tak nie ustawisz "klonowi" że jest połączony ze stroną czy czym tam jesteś połączony "oryginałem". BTW po co coś takiego bo nie potrafię sobie wyobrazić takiej sytuacji.

0

Jak np masz tak

idHTTP1.Host := 'google.pl';
idHTTP1.Wartosc1 := 'cos tam';
idHTTP1.Wartosc2 := 'cos tam';
idHTTP1.Wartosc3 := 'cos tam';
  //  [...]

idHTTP2.Host := 'google.pl';
idHTTP2.Wartosc1 := 'cos tam';
idHTTP2.Wartosc2 := 'cos tam';
idHTTP2.Wartosc3 := 'cos tam';
  //  [...]

to lepiej zrób tak

procedure SetHTTPSettings(var idHTTP: TidHTTP);
begin
  idHTTP.Host := 'google.pl';
  idHTTP.Wartosc1 := 'cos tam';
  idHTTP.Wartosc2 := 'cos tam';
  idHTTP.Wartosc3 := 'cos tam';
end;

SetHTTPSettings(HTTP1);
SetHTTPSettings(HTTP2);
0

*Uwaga: Czytać z zamkniętymi oczami i wspak

const
  maxsize=50;
function Zczitujklase(klasa:TObject):TObject;
begin
  GetMem(pointer(result),maxsize);
  move(pointer(klasa)^,pointer(result)^,maxsize);
end;
procedure ZabijZczitowanaKlase(klasa:TObject);
begin
  FreeMem(pointer(klasa),maxsize);
end; 

Niestety nie uwzględnia to wszelkich podklas typu TStrings etc.
Czyli tłumacząc wprost: Bez konstruktora kopiującego nie da się. Musisz sobie kopiować ręcznie to co potrzebujesz.

1
-pB_No- napisał(a):

...

genialne, po prostu cudo... Szczególnie jak użyje tego ktoś, kto pojęcie o programowaniu ma jak krowa o pisaniu sonetów. (być może) Oczywiście wiesz, że całe VMT, wszystkie wskaźniki (te jawne i niejawne jak np. obiekty) szlag jasny i niespodziewany trafi. Tak to sobie można rekord, albo tablicę przekopiować ale nie obiekt

0

Mam nadzieje że nie masz mnie na myśli :) Tak bym nie zrobił i tak bo to rozwiązanie zupełnie bez sensu i ryzykowne.

0

genialne, po prostu cudo... Szczególnie jak użyje tego ktoś, kto pojęcie o programowaniu ma jak krowa o pisaniu sonetów. (być może) Oczywiście wiesz, że całe VMT, wszystkie wskaźniki (te jawne i niejawne jak np. obiekty) szlag jasny i niespodziewany trafi. Tak to sobie można rekord, albo tablicę przekopiować ale nie obiekt

Oj, misiekd, coś słabo u ciebie z poczuciem humoru :-/
Przecież kazałem czytać wspak i z zamkniętymi oczami @.@ jak oszukiwałeś to nie moja wina :p
To miało po prostu uświadomić że bez konstruktora kopiującego 'normalnie' się nie da.

1 użytkowników online, w tym zalogowanych: 0, gości: 1