Dynamicznie tworzenie komponentów w ScrollBox

dział ogólny

Dynamicznie tworzenie komponentów w ScrollBox

Nowy postprzez shycat » piątek, 22 sierpnia 2008, 14:02

Witam, jak utworzyc dynamicznie jakis komponent zeby ten byl "w srodku" obiektu TScrollBox ?
Avatar użytkownika
shycat
Homos antropiczny
Homos antropiczny
 
Posty: 51
Dołączył(a): środa, 20 sierpnia 2008, 12:37
Lokalizacja: Śląsk
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: C++ Builder 2006, Delphi 7
Gadu Gadu: 26712716
    NieznanyNieznana

Re: Dynamicznie tworzenie komponentów w ScrollBox

Nowy postprzez Cyfrowy Baron » piątek, 22 sierpnia 2008, 14:33

Wszystkie komponenty dynamiczne tworzy się tak samo, tylko zarządzać jest nimi potem trudno, pojawiają się problemy z wyciekiem pamięci, itp. Jeżeli chcesz żeby jakiś obiekt dynamiczny był przypisany do ScrollBox to musisz mu ustawić ten ScrollBox jaki "rodzica" (Parent):

Kod: Zaznacz cały
  TPanel *MyPanel1 = new TPanel(this);
  MyPanel1->Parent = ScrollBox1; //. ScrollBox1 staje się "rodzicem" obiektu MyPanel1
  MyPanel1->Left = 50;
  MyPanel1->Top = 50;
//  MyPanel1->itd...
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Dynamicznie tworzenie komponentów w ScrollBox

Nowy postprzez shycat » piątek, 22 sierpnia 2008, 14:55

dziki wielkie za pomocną odpowiedz <piwo>
Avatar użytkownika
shycat
Homos antropiczny
Homos antropiczny
 
Posty: 51
Dołączył(a): środa, 20 sierpnia 2008, 12:37
Lokalizacja: Śląsk
Podziękował : 2
Otrzymał podziękowań: 0
System operacyjny: Windows 7
Kompilator: C++ Builder 2006, Delphi 7
Gadu Gadu: 26712716
    NieznanyNieznana

Re: Dynamicznie tworzenie komponentów w ScrollBox

Nowy postprzez vonsmallhausen » czwartek, 25 września 2008, 13:16

czesc
mam nadzieje ze autor sie nie obrazi, ale dopisze sie do tego watku, bo mam bardzo podobny problem..

mianowicie, jak dynamicznie stworzyc komponent na np. TabbedNotebook, ktory ma kilka stron (zakladek)..
jesli tworze w sposob (podany wyzej) komponent pojawia nie na aktualnie Aktywnej stronie, a jesli ja zmienie na inna i z powrotem odmienie na ta, na ktorej byl wczesniej to juz go nie ma.. i zadne Refresh(), Repaint(), Visible=true nie dzialaja zeby znow go zobaczyc :/

z gory dzieki za pomoc..
Avatar użytkownika
vonsmallhausen
 
    NieznanyNieznana

Re: Dynamicznie tworzenie komponentów w ScrollBox

Nowy postprzez Cyfrowy Baron » czwartek, 25 września 2008, 14:29

Komponent TabbedNotebook tworzy swoje strony dynamicznie w zależności od zawartości właściwości Pages. Problem w tym, że ten komponent nie zwraca uchwytu do żadnej ze swoich zakładek, więc mozłiwe jest przypisanie jako rodzica samego komponentu, ale nie można już tego zrobić dla poszczególnych stron.
Jeżeli chcesz tworzyć coś podobnego dynamicznie, to powinieneś posłużyć się raczej komponentem TPageControl, który wygląda tak samo, ale tworzy zakładki jako odrębne elementy, które mogą pełnić rolę "rodzica".

Przykład dla TPageControl z TTabSheet:

Kod: Zaznacz cały
TPageControl *PageControl1 = new TPageControl(this);
PageControl1->Parent = this;
PageControl1->Left = 10;
PageControl1->Top = 400;


TTabSheet *TabSheet1 = new TTabSheet(this);
TabSheet1->PageControl = PageControl1;
TabSheet1->Caption = "Zakładka 1";

TTabSheet *TabSheet2 = new TTabSheet(this);
TabSheet2->PageControl = PageControl1;
TabSheet2->Caption = "Zakładka 2";

TTabSheet *TabSheet3 = new TTabSheet(this);
TabSheet3->PageControl = PageControl1;
TabSheet3->Caption = "Zakładka 3";

Edit1->Parent = TabSheet2;
Edit1->Left = 5;
Edit1->Top = 5;
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Dynamicznie tworzenie komponentów w ScrollBox

Nowy postprzez vonsmallhausen » czwartek, 25 września 2008, 14:52

dzieki.. ale chyba sie w tym pozniej za bardzo pogubie, bo tylko elementy na stronach mialy byc dynamiczne, a nie ten glowny obiekt i wszystkie jego strony
zrobie to chyba tak ze na kazda strone TabbedNotebook wrzuce jakiegos ScrollBoxa i do niego bede przypisywal te obiekty :)

ale dzieki.. na przyszlosc bede przynajmniej wiedzial :)
Avatar użytkownika
vonsmallhausen
 
    NieznanyNieznana


Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 9 gości

cron