Il linguaggio di programmazione Delphi
 

Caption errate

Stark 15 Gen 2017 16:50
Un PageControl ha delle pagine che possono essere nascoste dall'utente.
Praticamente metto TabVisible true o false.
Il problema è che quando agisco sul TabVisible, l'OnDraw del PageControl,
che uso per mostrare delle icone nei tabs, sbaglia a disegnare la caption,
certamente perchè indirizza la tab che individua con TabIndex:

DrawText(Handle, PChar(MyPageCtl.Pages[TabIndex].Caption), -1, TmpRect,
DT_CENTER or DT_VCENTER);

Come posso diversamente identificare il Tabsheet ?
alessandrob 18 Gen 2017 09:14
Ho avuto un problema simile.

Ho risolto utilizzando un ciclo preliminare per individuare il corretto indice.

{ --- Determina Titolo Finestra --- }
Capt := '';
c :=-1;
i := 0;
while (Capt = '') and (i < TPageControl(Control).PageCount) do begin
{ --- Considera solo pagine visibili --- }
if TPageControl(Control).Pages[i].TabVisible
then inc(c);

{ --- Riconoscimento Titolo --- }
if (Capt = '') and (c = TabIndex)
then Capt := TPageControl(Control).Pages[i].Caption;

{ --- Cicla --- }
inc(i);
end;

In questo modo mi determino il corretto titolo da visualizzare.
Puoi ovviamente adattare il codice a seconda delle tue esigenze
Stark 18 Gen 2017 16:25
"alessandrob" ha scritto nel messaggio
news:0a34411d-25bc-48f1-a343-cd167cb8fd12@googlegroups.com...

Ho avuto un problema simile.

Ho risolto utilizzando un ciclo preliminare per individuare il corretto
indice.

{ --- Determina Titolo Finestra --- }
Capt := '';
c :=-1;
i := 0;
while (Capt = '') and (i < TPageControl(Control).PageCount) do begin
{ --- Considera solo pagine visibili --- }
if TPageControl(Control).Pages[i].TabVisible
then inc(c);

{ --- Riconoscimento Titolo --- }
if (Capt = '') and (c = TabIndex)
then Capt := TPageControl(Control).Pages[i].Caption;

{ --- Cicla --- }
inc(i);
end;

In questo modo mi determino il corretto titolo da visualizzare.
Puoi ovviamente adattare il codice a seconda delle tue esigenze
---
Credevo che stessi creandomi io il problema con un uso scorretto e invece
c'era davvero..
Grazie della tua soluzione. Provo ad adattarla, ma mi sembra che vada già
abbastanza bene..
Stark 30 Gen 2017 15:49
"alessandrob" ha scritto nel messaggio
news:0a34411d-25bc-48f1-a343-cd167cb8fd12@googlegroups.com...
--
Avevo dimenticato di dirti che ho implementato il tuo suggerimento
praticamente così come me lo hai offerto e funziona perfettamente..
Grazie

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione Delphi | Tutti i gruppi | it.comp.lang.delphi | Notizie e discussioni delphi | Delphi Mobile | Servizio di consultazione news.