Einzelnen Beitrag anzeigen

Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#2

Re: TabControl.Height zur Laufzeit ändern

  Alt 14. Mär 2006, 19:24
Hallo Leute,

hätte nicht gedacht, daß dazu keiner was sagen kann.

Folgendes Unterprogramm (UP) löst das Problem vorerst:

Delphi-Quellcode:
procedure TForm.ChkTCHeight(tc : TTabControl);
var
  rc : TRect;
  sumw, i : integer;
begin
  sumw := 0;
  for i := 0 to tc.Tabs.Count - 1 do begin
    rc := tc.TabRect(i);
    sumw := sumw + rc.Right - rc.Left;
  end;
  i := 0;
  repeat
    sumw := sumw - tc.Width;
    inc(i);
  until sumw <= 0;
  tc.Height := i * (tc.TabHeight + 1);
end;
(Kleiner) Nachteil ist, daß ich bei jeder Aktion, die die Anzahl der Tabs ändert, das UP in den Programmcode einbauen muß.
In OnChange eingefügt hat nicht das gewünschte Ergebnis geliefert.

Falls jemand eine optimalere Version kennt, dann immer her damit.

mfg
eddy
  Mit Zitat antworten Zitat