JvPanel kolejność 'warstw'

0

Witam,

mam na formie kilka JVPanel-i. Mój problem polega na tym, że chce, aby 1-szy panel był nad drugim, zaś jest na odwrót. Nie pomaga żadne 'Bring to front', 'Send to back' nawet programowo. Nawet jeżeli uda mi się jakimś cudem w projekcie ustawić odpowiednią kolejność, to po wy kompilowaniu i uruchomieniu programu jest tak jak było, w sensie 2-gi na d 1-szym, czyli na odwrót. Nie mam bladego pojęcia jak sobie z tym poradzić.

a muszą być JvPanel, bo potrzebuję przezroczystość.

0

Prawdę mówiąc nie miałem okazji korzystać z JvPanel, ale... Jeśli "drogą programową" nie możesz nic zrobić, może spróbuj edytować plik dfm formy. Nie wiem, może jest jakiś łatwiejszy sposób, może ktoś coś jeszcze podpowie...

Tutaj przykład z TPanel ale to się odnosi do wszsytkich wizualnych komponentów, więc także do TjPanel...

np. prosta forma z panel1, panel2 (panel2 jest wyżej) wygląda w dfm tak:

object Form2: TForm2
  Left = 0
  Top = 0
  Caption = 'Form2'
  ClientHeight = 311
  ClientWidth = 643
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Panel1: TPanel
    Left = 175
    Top = 30
    Width = 185
    Height = 151
    Caption = 'Panel1'
    TabOrder = 0
  end
  object Panel2: TPanel
    Left = 290
    Top = 80
    Width = 185
    Height = 171
    Caption = 'Panel2'
    TabOrder = 1
  end
end

Jak widzisz, definicja panel1 to kod pomiędzy object Panel1: TPanel a end. Jeśli wytnę kod:

  object Panel1: TPanel
    Left = 175
    Top = 30
    Width = 185
    Height = 151
    Caption = 'Panel1'
    TabOrder = 0
  end

i wstawię go po definicji panel2 to automatycznie zmieni mi się kolejność ich tworzenia i jednocześnie przykrywania.

Żeby z widoku formy przejść do edycji kodu dfm na formie robisz prawy klawisz myszy -> View as text
Żeby z edycji kodu dfm wrócić do widoku formy na edytorze prawy klawisz myszy -> View as Form

Ach i na koniec jedno pytanie. Co robisz, bo zdaje się, że już się spotkaliśmy przy jakimś temacie, i zdaje mi się, że lubisz utrudniać sobie życie... :P Może jest inne rozwiązanie Twojego problemu?

0

A zwykłe panele jak się zachowują?
U mnie jvPanel pokazuje się prawidłowo (D2010).

0

user image
Chodzi o to, że na czerwono mam 1 panel, w którym są 3 obrazki, które są programowo rozmieszczane. Dla czego to robię w panelu? Bo jak porozkładam sobie obrazki odpowiednio, to żeby potem je przesunąć nie muszę zajmować się każdym oddzielnie, tylko przenoszę cały panel (takie jakby grupowanie).
Po niże są 3 karty, które są w oddzielnych panelach (zielony) i potem te 3 panele są w jeszcze jednym panelu (fioletowy).

Te wszystkie panele będą odpowiednio umieszczone w miejscu 'x'. ale to nie problem. Głównie chodzi mi o tą kolejność, że czerwone jest nad fioletowym, a ja chce na odwrót.

Zmiana kolejności danych w pliku 'Unit1.dfm' pomogła, z tym, że przy każdej takiej potrzebie zmiany kolejności będę musiał znów grzebać w nim, a nie bardzo chce.

Edit:

Mam Delphi 7 Enterprise

Edit:

Zwykłe panele zachowują się normalnie, jak biorę 'Send to back' itp to jest ok.
Ale co jeszcze zauważyłem, jak wezmę JvPanel i zwykły Panel to 'Send to back' itp działa normalnie, ale jak chce zmienić kolejność JvPaneli wewnątrz JvPanelu to już nie idzie.
Sprawdziłem jeszcze dla zwykłych Paneli, czyli Panel i w nim 2 panele nachodzące na siebie. I w tym przypadku 'Send to back' działa prawidłowo.

0

Przestaw programowo Parent.

0

Wybadałem sprawę... Niestety te JvPanel to trochę kicha. Dla czego? w załączniku zamieszczam przykład, którym się bawiłem.
http://www.speedyshare.com/files/27437772/trans_panel.exe

Mianowicie mam 2 panele i w nich po 1 buttonie i jak kliknę na button2 (pod panelem 2) to panele robią się przezroczyste (taki był cel). Ale potem widać, że nie zależnie do tego, który button kliknę wyskakuje on na wierzch, choć button 2 nie powinien być przed button1.

Nie wiem czy jest jakiś obejście tego problemu? Jak przezroczystość jest wyłączona, to panele zachowują się normalnie, nic nie wyskakuje.

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