Autor Beitrag
TheUnknown
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 334



BeitragVerfasst: Di 03.06.03 14:09 
Hallo!

Es gibt einen Bug beim TPageControl, wenn folgendes gegeben ist:

1) PageControl.MultiLine ist True und PageControl.Align ist alClient.
2) PageControl.PageCount ist 1.
3) Die Caption der einzigen Page vom PageControl ist ca. 40 Zeichen (oder mehr) lang. (Je nach Fonteinstellung auch schon bei weniger als 40 Zeichen!)
4) Das Programm befindet sich in der Laufzeit.
5) Das Form, auf dem sich das PageControl befindet, wird gerade Resized (mit der Maus an den rechten Rand des Forms klicken, Mausbutton halten und denn langsam das Form immer schmaler zusammenschieben.

Wenn jetzt der Moment kommt, wo das Tab des PageControl breiter ist, als das Form, kommt eine Exception, die ich einfach nicht abfangen kann...

Gibt es irgendeine Möglichkeit, das zu umschiffen? Meine Anwendung ist nämlich darauf angewiesen, mit DIESEN Einstellungen zu arbeiten (da ständig Tabs hinzukommen oder entfernt werden!)...


Ich nutze Delphi 5 Standard/UP1 unter Windows 2000/SP3
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Do 05.06.03 12:28 
Hi

den Bug kann ich bestehtigen, tritt unter allen Betriebssystemen auf. Ich weis nicht wo er ausgelöst wird, aber ich habe ihn umgagen.
Etwas so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.FormResize(Sender: TObject);
var MindestWidth,i:integer;
begin
  MindestWidth:=0;
  for i:=0 to PageControl1.PageCount-1 do begin
    if MindestWidth<
     PageControl1.TabRect(i).Right-PageControl1.TabRect(i).Left then
     MindestWidth:=PageControl1.TabRect(i).Right-PageControl1.TabRect(i).Left+6;
//die 6 ist der wert, der für die Ränder der form drauf geht, bei 5 gibt die Exeption
  end;
  if MindestWidth<Form1.ClientWidth then
    PageControl1.Align:=alClient
  else
    PageControl1.Align:=alNone;
end;


Das ist nur eine Rekonstruktion, funktioniert aber.
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.