Results 1 to 4 of 4

Thread: Panels bij hide/unhide volgorde is gewisseld

  1. #1
    Win32.Trojan.Heur.Herby
    Join Date
    Dec 2003
    Location
    Nuenen of all places
    Posts
    289

    Panels bij hide/unhide volgorde is gewisseld

    Ik heb een probleem de panels weer terug te krijgen op de plek waar ze oorspronkelijk zouden moeten staan.
    Dat dit by design is begrijp ik, maar ik probeer er omheen te werken.

    Heb al verschillende dingen geprobeerd zoals de top te wijzigen maar het lukt me niet.
    Is hier een simpel truukje voor?

    Click image for larger version. 

Name:	goed.png 
Views:	21 
Size:	15.2 KB 
ID:	8308
    Oorspronkelijke situatie

    Click image for larger version. 

Name:	fout.png 
Views:	24 
Size:	13.0 KB 
ID:	8309
    zodra pnlBottom wordt uitgezet en weer wordt aangezet komt deze boven de pnlTop ipv eronder.

    alles staat in één panel.
    Listview heeft alClient
    pnlTop heeft alBottom
    pnlBottom heeft alBottom

    Code:
    procedure TForm1.btnPnlBotClick(Sender: TObject);
    begin
      pnlBottom.Visible := NOT pnlBottom.Visible;
    end;
    
    procedure TForm1.btnPnlTopClick(Sender: TObject);
    begin
      pnlTop.Visible := NOT pnlTop.Visible;
    end;
    zipje Panel Order.zip

  2. #2
    alTop voor pnlTop?
    Ander: align uitzetten voor d epanels en dan pas visible veranderen, daarna align weer aanzetten.

    Bart

  3. #3
    Win32.Trojan.Heur.Herby
    Join Date
    Dec 2003
    Location
    Nuenen of all places
    Posts
    289
    Quote Originally Posted by Bart B View Post
    alTop voor pnlTop?
    Ander: align uitzetten voor d epanels en dan pas visible veranderen, daarna align weer aanzetten.

    Bart
    Dat gaf ook niet het gewenste resultaat.

    De oplossing die voor mij nu goed werkt is:
    Code:
    procedure TForm1.btnPnlBotClick(Sender: TObject);
    var
      lTempTop: Integer;
    begin
      pnlBottom.Visible := NOT pnlBottom.Visible;
    
      if pnlBottom.Visible AND pnlTop.Visible then
        begin
          lTempTop      := pnlTop.Top;
          pnlTop.Top    := pnlBottom.Top;
          pnlBottom.Top := lTempTop;
        end;
    end;
    
    procedure TForm1.btnPnlTopClick(Sender: TObject);
    begin
      pnlTop.Visible := NOT pnlTop.Visible;
    end;
    Toch bedankt

  4. #4
    Silly member NGLN's Avatar
    Join Date
    Aug 2004
    Location
    Werkendam
    Posts
    5,133
    Alternatief:
    Delphi Code:
    1. procedure TForm2.Button1Click(Sender: TObject);
    2. begin
    3.   TopPanel.Visible := not TopPanel.Visible;
    4. end;
    5.  
    6. procedure TForm2.Button2Click(Sender: TObject);
    7. begin
    8.   DisableAlign;
    9.   try
    10.     BottomPanel.Visible := not BottomPanel.Visible;
    11.   finally
    12.     EnableAlign;
    13.   end;
    14. end;
    (Sender as TNLDUser).Signature := 'Groeten van Albert';

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •