Bei TabSheet=Visibel Fehler

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
pjensen
Beiträge: 77
Registriert: Fr 27. Jul 2007, 08:43
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Nahe Flensburg

Bei TabSheet=Visibel Fehler

Beitrag von pjensen »

Hallo ,

auf einer Form ist u.a. ein PageControl mit 12 Pages.


Beim "Form-Activate" mache ich alle Tabs unsichtbar:

Code: Alles auswählen

procedure TForm1.HideAll;
var i: integer;
begin
  for i:=0 to PageControl1.PageCount-1 do
  begin
     PageControl1.Page[i].TabVisible:=False;
  end;
end;
Je nach Menuaufruf werden einige der Tabs sichtbar, z.B.

Code: Alles auswählen

Tab_Bla1.TabVisible:=True;
Tab_Bla2.TabVisible:=True;
Tab_Bla3.TabVisible:=True;
Manchmal ist auf den Tabs, die sichtbar werden folgendes falsch:
1) TabStob funktioniert nicht, z.B. für DBEdits
2) TLabels sind nicht sichtbar

Dies passiert manchmal sofort, wenn ich die Tabs sichtbar mache.

Manchmal sind die Tabs auch in Ordnung. Wenn ich dann zwischen den sichtbaren Tabs hin- und herschalte, kommt manchmal der Fehler.

Dieser Fehler erscheint nicht auf allen Tabs. Wenn er erscheint, dann immer auf den selben Tabs.

Übrigens: Mit TNotebook habe ich den gleichen Fehler.

Was mache ich falsch?

MfG, Peter
Zuletzt geändert von monta am Mo 28. Sep 2009, 12:39, insgesamt 2-mal geändert.
Grund: Highlighter gesetzt

Benutzeravatar
theo
Beiträge: 10952
Registriert: Mo 11. Sep 2006, 19:01

Re: Bei TabSheet=Visibel Fehler

Beitrag von theo »

Version etc? (Hilfe -> Über Lazarus -> Rechtsklick auf Gepard-> Info kopieren und hier pasten)

pjensen
Beiträge: 77
Registriert: Fr 27. Jul 2007, 08:43
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Nahe Flensburg

Re: Bei TabSheet=Visibel Fehler

Beitrag von pjensen »

Fehler behoben
Ich setze für die Tabs, die sichtbar werden jeweils die PageIndexes neu.

Wenn z.B. nur Tab4 und Tab5 (von Tab1..Tab12) sichtbar sein sollen, muss ich
setzen:

begin
Tab4.PageIndex:=0
Tab5.PageIndex:=1
Tab4.Visible:=True;
Tab5.Visible:=True;
PageControl1.ActivePage:=Tab4;
.....
end;

MfG, Peter

Antworten