Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TTabControl
rizor - Do 21.12.06 19:27
Titel:  TTabControl
Hallo,
ich arbeite gerade mit den Reitern und mir ist aufgefallen, dass das eine ungeheure Schreibarbeit ist.
            
Delphi-Quelltext    
                                        | 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 46:
 47:
 48:
 49:
 50:
 51:
 52:
 53:
 54:
 55:
 56:
 57:
 58:
 59:
 60:
 61:
 62:
 63:
 64:
 65:
 66:
 67:
 68:
 69:
 70:
 71:
 72:
 73:
 74:
 75:
 76:
 77:
 78:
 79:
 80:
 81:
 82:
 83:
 84:
 85:
 86:
 87:
 88:
 89:
 90:
 91:
 92:
 93:
 94:
 95:
 96:
 97:
 98:
 99:
 100:
 101:
 102:
 103:
 104:
 105:
 106:
 107:
 
 |   if TCNaviBar.TabIndex=0 then      beginLHead_01.Visible:=true;
 LHead_02.Visible:=true;
 LHead_03.Visible:=true;
 LHead_04.Visible:=true;
 IMain.Visible:=true;
 Lfunc.Visible:=false;
 Efunktion.Visible:=false;
 BBdelete.Visible:=false;
 BBuse.Visible:=false;
 Ldis.Visible:=false;
 Lfunktion.visible:=false;
 Lpot.visible:=false;
 Lbruch.Visible:=false;
 Lex.Visible:=false;
 end;
 
 if TCNaviBar.TabIndex=1 then      begin
 LHead_01.Visible:=false;
 LHead_02.Visible:=false;
 LHead_03.Visible:=false;
 LHead_04.Visible:=false;
 IMain.Visible:=false;
 Lfunc.Visible:=true;
 Efunktion.Visible:=true;
 BBdelete.Visible:=true;
 BBuse.Visible:=true;
 Ldis.Visible:=true;
 Lfunktion.visible:=true;
 Lpot.visible:=true;
 Lbruch.Visible:=true;
 Lex.Visible:=true;
 end;
 
 if TCNaviBar.TabIndex=2 then      begin
 LHead_01.Visible:=false;
 LHead_02.Visible:=true;
 LHead_03.Visible:=false;
 LHead_04.Visible:=false;
 IMain.Visible:=false;
 Lfunc.Visible:=false;
 Efunktion.Visible:=false;
 BBdelete.Visible:=false;
 BBuse.Visible:=false;
 Ldis.Visible:=false;
 Lfunktion.visible:=false;
 Lpot.visible:=false;
 Lbruch.Visible:=false;
 Lex.Visible:=false;
 end;
 
 if TCNaviBar.TabIndex=3 then      begin
 LHead_01.Visible:=false;
 LHead_02.Visible:=false;
 LHead_03.Visible:=true;
 LHead_04.Visible:=false;
 IMain.Visible:=false;
 Lfunc.Visible:=false;
 Efunktion.Visible:=false;
 BBdelete.Visible:=false;
 BBuse.Visible:=false;
 Ldis.Visible:=false;
 Lfunktion.visible:=false;
 Lpot.visible:=false;
 Lbruch.Visible:=false;
 Lex.Visible:=false;
 end;
 
 if TCNaviBar.TabIndex=4 then      begin
 LHead_01.Visible:=false;
 LHead_02.Visible:=false;
 LHead_03.Visible:=false;
 LHead_04.Visible:=true;
 IMain.Visible:=false;
 Lfunc.Visible:=false;
 Efunktion.Visible:=false;
 BBdelete.Visible:=false;
 BBuse.Visible:=false;
 Ldis.Visible:=false;
 Lfunktion.visible:=false;
 Lpot.visible:=false;
 Lbruch.Visible:=false;
 Lex.Visible:=false;
 end;
 
 if TCNaviBar.TabIndex=5 then      begin
 LHead_01.Visible:=false;
 LHead_02.Visible:=false;
 LHead_03.Visible:=false;
 LHead_04.Visible:=false;
 IMain.Visible:=true;
 Lfunc.Visible:=false;
 Efunktion.Visible:=false;
 BBdelete.Visible:=false;
 BBuse.Visible:=false;
 Ldis.Visible:=false;
 Lfunktion.visible:=false;
 Lpot.visible:=false;
 Lbruch.Visible:=false;
 Lex.Visible:=false;
 end;
 | 
        
      
Geht das auch einfacher?
Der Code wird ja auch unübersichtlich.
Danke.
 
Marco D. - Do 21.12.06 19:36
Du könntest case-of benutzen. Vom welchem Typ sind denn die ganzen Dinger, von denen du visible änderst?
rizor - Fr 22.12.06 09:22
das sind alles labels oder ähnliche teile
Kroko - Fr 22.12.06 09:34
probiers mal mit
            
Delphi-Quelltext    
                                        | 1:2:
 
 |   LHead_01.Visible := TCNaviBar.TabIndex in [0];   LHead_02.Visible := TCNaviBar.TabIndex in [0];                      | 
        
      
 
uwewo - Fr 22.12.06 09:46
Ok, Vielleicht so.
Setzte alle Labels etc. auf ein Panel und ändere die Propertys von diesem.
rizor - Fr 22.12.06 15:25
Super. Das vereinfacht alles enorm.
Danke.
Entwickler-Ecke.de  based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!