• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Złe ustawienie warstw obiektów C++ Builder 6

0 głosów
319 wizyt
pytanie zadane 24 lipca 2024 w C i C++ przez TomJun Nowicjusz (190 p.)
Witam.
Od jakiegoś czasu pisze aplikację wizualną w C++ Builder 6 i doszedłem do momentu, kiedy chce stworzyć menu z opcjami przewijania strony przyciskiem na którym jest narysowana strzałka. Z tego co wiem nie da się dodać grafiki do przycisku, więc stwierdziłem, że najlepszym pomysłem będzie wstawienie obrazka, który wygląda jak przycisk i przypisanie do funkcji OnClick() kodu itp.
Mam natomiast jeden problem, jako główne tło menu chciałem wstawić obiekt "Panel" a jak próbuję przeciągnąć ten przycisk (to zdjęcie) na panel to nie widać go, gdyż ustawia się pod warstwą panelu.
Jak ktoś zna rozwiązanie tego problemu, to byłbym wdzięczny. Z góry dziękuję i pozdrawiam!

2 odpowiedzi

+2 głosów
odpowiedź 25 lipca 2024 przez jankustosz1 Nałogowiec (37,030 p.)
O ile pamiętam to prawym przyciskiem klikasz i opcja "Bring to front" / "Bring to background"

Ale ogólnie lepiej nie trać czasu z C++ Builder 6. To przestarzałe narzędzie z jeszcze 2002 roku. Nie ma sensu tracić na to czasu. Jest masa lepszych rozwiązań które będą bardziej praktyczne i współczesne. Ja polecę Visual Studio i środowisko .NET.
+1 głos
odpowiedź 27 lipca 2024 przez VBService Ekspert (256,580 p.)
edycja 28 lipca 2024 przez VBService

Możesz też z poziomu kodu, m. in. np. tak:

Image1->BringToFront();
Image1->SendToBack();

// Aby ustawić dokładny indeks kontrolki w hierarchii kontrolek Form-y, 
// można manipulować tablicą Controls
TControl *control = Form1->Controls[0]; // Przykład pobrania kontrolki o indeksie 0
Form1->RemoveControl(control); // Usunięcie kontrolki
Form1->InsertControl(control, 2); // Dodanie kontrolki na indeksie 2

// Ewentualnie później po ustaleniu zIndex-u
Image1->Left = 100;
Image1->Top = 100;
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    // Podłącz zdarzenie OnCreate
    this->OnCreate = FormCreate;
}

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    // Ustawienie indeksu kontrolki Image1 podczas ładowania Form-y
    SetControlZIndex(Image1, 2);
}

void __fastcall TForm1::SetControlZIndex(TControl *control, int index)
{
    if (control->Parent == this && index >= 0 && index < this->ControlCount)
    {
        this->RemoveControl(control);
        this->InsertControl(control, index);
    }
}

 

 

 

BTW, polecam: 

Podobne pytania

0 głosów
2 odpowiedzi 1,521 wizyt
pytanie zadane 24 stycznia 2019 w HTML i CSS przez ziomek7 Obywatel (1,060 p.)
0 głosów
1 odpowiedź 1,100 wizyt
pytanie zadane 23 sierpnia 2018 w HTML i CSS przez FutrzaQQ Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 1,060 wizyt

93,741 zapytań

142,677 odpowiedzi

323,296 komentarzy

63,326 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...