Šta je novo?

[Delphi] TabControl

  • Začetnik teme Začetnik teme ToxiC
  • Datum pokretanja Datum pokretanja

ToxiC

Čuven
Učlanjen(a)
12.12.2002
Poruke
2,560
Poena
679
Imam podosta Edit i Label box-ova na vise Tab-ova... da li postoji neki laksi-brzzi nacin prikazivanja i sakrivanja istih, a da nije tako sofisticirano kao:
Kod:
if TabControl1.tabIndes = 1 then
   Edit1.visible:=true;
   Label1.visible:=true;
   .
   .
   .
   Edit10.visible:=true;
   Label10.visible:=true;
   
   Edit11.visible:=false;
   Label11.visible:=false;
   .
   .
   .
   Edit20.visible:=false:
   Label20.visible:=false;
else if TabControl1.tabIndes = 2 then
  //pa sve obrnute boolean vrednosti za iste box-ove
treba mi puno vremena da ispisem sve kontrole, imam 6 tab-ova i vise desetina box-ova
 
Postavis panel i sve ove label i editboxove na panel i posle samo odredjujes panel.visible = true ili false.
 
@silverglider
spasao si me muke
Hvala :wave:
 
jos jedna ideja... koristis Page control umesto tab control...
 
Treći način: koristiš for petlju kroz koju tražiš element, kao recimo

Kod:
for i := 1 to 10 do
begin
  (FrmForma.FindComponent('Edit' + IntToStr(i)) as TEdit).Visible := False;
  (FrmForma.FindComponent('Label' + IntToStr(i)) as TLabel).Visible := False;
end;
for i := 11 to 20 do
begin
  (FrmForma.FindComponent('Edit' + IntToStr(i)) as TEdit).Visible := True;
  (FrmForma.FindComponent('Label' + IntToStr(i)) as TLabel).Visible := True;
end;
 
Ma mogao je i da stavi u tag property svake kontrole index tab dugmeta, pa da uradi i petlju od 0 do Form.ComponentCount-1, pa da za svaku testira if (form.components is TEdit) and (form.components.tag = n) then... ali je to sve nepotrebno i time consuming zbog petlji - samo se rabi tastatura. Ovako se sve organizuje po panelima i postavi jedan property. Jos ako se paneli preklapaju (tj. zauzimaju isti prostor i imaju align=alClient), jednostavnije i brze je samo zvati OdredjeniPanel.BringToFront() funkciju - tada se ne zeza uopste sa visible atributom i postavljanjem propertyja ostalih panela i jos vise stedi vreme (em u pisanju, em u izvrsavanju).
 
Poslednja izmena:
ok, ponovo.. zasto uopste pricamo o ovome kad ima page control koji to sve radi sam?
nisam jos naleteo ni na jednu situaciju gde page control nije radio a da bi mi tab control radio posao...
 
danijel00 je napisao(la):
ok, ponovo.. zasto uopste pricamo o ovome kad ima page control koji to sve radi sam?
nisam jos naleteo ni na jednu situaciju gde page control nije radio a da bi mi tab control radio posao...

Pricamo o tome zato sto ima situacija kada PageControl nije resenje. To jest, kada organizacija u tabsheetove ne pasuje, ili kada se kontrola za tabove i ono sta tabovi kontrolisu nalazi na razlicitim mestima.
 
Hvala Vam svima, radi i sa PageControl !!
Ostaje mi samo da vidim sta je bolje Tab ili Page
 
kolko sam ja prvu poruku protumacio pagecontrol radi posao garant |>

a i nekako mi je logicno da se tabovima kontrolisu tabsheetovi, sad mozda moja logika nije najcistija, ali mu tako dodje |>>
igrom slucaja trenutno u firmi korisim delphi pa ga psujem svaki dan, tako da sam momentalno bas izverziran... i ono sto mogu da kazem je da je najjednostavnije resnje defintiivno najbolje, uvek kad se radi nesto ozbiljno
 
Pa sad, ako treba biti "verziran" da bi se izabrala komponenta iz toolbara, onda mora da se radi nesto fakat ozbiljno 🙂))
 
Ne nego kad radis nesto ozbiljno, iskoristices resenje koje je gotovo, neces izmisljati toplu vodu kad ne moras...
ja inace volim da izmisljam toplu vodu, ali su me oducili od toga |))
 
Nazad
Vrh Dno