Komponent - rozwijany panel.

problemy z funkcjonowaniem bibliotek, komponentów itp.

Re: Komponent - rozwijany panel.

Nowy postprzez Cyfrowy Baron » poniedziałek, 6 czerwca 2011, 14:07

Ja robiłem to inaczej niż Ty, a cały kod to:

KOD cpp:     UKRYJ  
void __fastcall TForm1::Label1Click(TObject *Sender)
{
 int x = dynamic_cast<TLabel *>(Sender)->Tag;

 TPanel *tPanel = dynamic_cast<TPanel *>(FindComponent("Panel" + (String)x));

 if(tPanel->Height > 23)
 {
  for(int i = 120; i > 23; i -= 5)
  {
   tPanel->Height = i;
   Application->ProcessMessages();
  }
  tPanel->Height = 23;
 }
 else
 {
  for(int i = 23; i < 120; i += 5)
  {
   tPanel->Height = i;
   Application->ProcessMessages();
  }
  tPanel->Height = 120;
 }
}


Żadnego kodu więcej nie ma.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
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
    Windows XPFirefox

Re: Komponent - rozwijany panel.

Nowy postprzez Slynx » poniedziałek, 6 czerwca 2011, 16:37

No dobra, ale co odpowiada za to, że te wszystkie okienka przesuwają się w górę (po kliknięciu na któreś), a nie zostają w tym samym miejscu ? Coś musiałeś jeszcze ustawić.
Chyba, że wszystko jest położone na flowlayout, bo na zwykłym panelu i domyślnych ustawieniach to te okienka by się zwinęły, ale miały by cały czas takie same odstępy.
---
niby wszystko działa ale... u Ciebie to wszystko działa jakoś ewidentnie szybciej. Pewnie jeszcze do tego wrócę... jak mi się zacznie ciąć.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Chrome

Re: Komponent - rozwijany panel.

Nowy postprzez Cyfrowy Baron » poniedziałek, 6 czerwca 2011, 19:26

Slynx napisał(a):No dobra, ale co odpowiada za to, że te wszystkie okienka przesuwają się w górę (po kliknięciu na któreś), a nie zostają w tym samym miejscu ?


Dzieje się to automatycznie i wynika ze sposobu rozmieszczenia. Na Panel-u głównym umieszczonych jest 5 Panel-i. Każdy z nich jest wyrównany do góry, czyli ma właściwość Align ustawioną na alTop. Dzięki temu, gdy któryś z Panel-i jest zwijany, to pozostałe będące pod nim wyrównują się do góry względem niego. Tyle jeżeli chodzi o przesuwanie. By wyrównać Panel-e względem siebie i względem Panel-u głównego, każdemu z tych 5 Panel-i ustawiłem właściwość AlignWithMargin na true, a we właściwości Margin przypisałem poszczególnym pod-właściwościom takie wartości left=12, top=10, right=11, bottom=10. Dzięki temu Panel-e mają marginesy z każdej strony. To tyle. To co na Panel-ach nie muszę już chyba wyjaśniać.

Mogę zamieścić projekt, ale jak nie masz Embarcadero RAD Studio 2010, nic to Tobie nie da, gdyż właściwości Panel-i ustawiłem w Object Inspector. Jeżeli jednak wiesz czym jest plik *.dfm to możesz podejrzeć jego zawartość i to wiele wyjaśni.


Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Slynx
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
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
    Windows XPFirefox

Re: Komponent - rozwijany panel.

Nowy postprzez Slynx » poniedziałek, 6 czerwca 2011, 20:28

Jak na razie działa świetnie ; p Nie pomyślałem o tym align (u mnie to jest "dock") i zamiast panel podstawiałem flowlayoutpanel, a te jak wszyscy wiedzą są strasznie wolne (wiele razy czytałem tematy na temat optymalizacji właśnie tego komponentu). Więc, dzięki
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Chrome

Poprzednia strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Biblioteki i komponenty

Kto przegląda forum

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