AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TabSet mach Probleme

Ein Thema von Thomas83 · begonnen am 16. Mär 2009 · letzter Beitrag vom 25. Mär 2009
Antwort Antwort
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#1

TabSet mach Probleme

  Alt 16. Mär 2009, 16:29
Servus,

da meine "Tabs" alles Formulare sind, habe ich mit der TabSet eine Reiter erstellt.
Mit dieser Funktion lege ich eine Tab an
Delphi-Quellcode:
procedure AddTabSet(Caption: String; Obj: Tobject);
var
  i : integer;
begin
  i := TabSet.Tabs.Add(Caption);
  TabSet.Tabs.Objects[i] := Obj;
  TabSet.TabIndex := i;
end;

...
AddTabSet('Form1', meineForm);
Mit dieser lösche ich wieder das Formular aus dem TabSet
Delphi-Quellcode:
procedure DelTabSet(Obj: Tobject);
var
  i : integer;
begin
  for i:=TabSet.Tabs.Count-1 downto 0 do
    if TabSet.Tabs.Objects[i] = obj then begin
      try
        TabSet.Tabs.Delete(i);
      except

      end;
      exit;
    end;
end;

...
DelTabSet(meineForm);
Allerdings wenn ich nur eine Form habe kommt eine Exception mit Listenindex bla bla bla.
Wenn ich "TabSet.TabIndex := i;" oben weg lasse kommt kein Fehler.
Try except funktioniert auch solange ich es nicht mit delphi starte. Lass ich es über Delphi starten kommt auch hier immer ein Fehler, was natürlich voll bervig ist.

Habe ich nochwas vergessen?
Mfg
  Mit Zitat antworten Zitat
_BlackDragon_

Registriert seit: 4. Dez 2007
Ort: Eschweiler
64 Beiträge
 
#2

Re: TabSet mach Probleme

  Alt 16. Mär 2009, 19:12
Hi.

Zitat:
Wenn ich "TabSet.TabIndex := i;" oben weg lasse kommt kein Fehler.
Bist du sicher das der Fehler daher kommt?

Ich habe es so getestet und keinen Fehler feststellen können.

Dennoch zwei Tipps:

1. Verwende doch direkt AddObject(...). Da kannst du dir die zweite Zeile sparen.
2. Wenn du die Auswahl hast, verwende lieber TTabControl oder TPageControl, denn TTabSet ist nur aus Kompatibilitätsgründen noch vorhanden und absolut veraltet.

Gruß

BlackDragon
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#3

Re: TabSet mach Probleme

  Alt 17. Mär 2009, 08:22
Zitat von _BlackDragon_:
Hi.

Bist du sicher das der Fehler daher kommt?
Jup bin mir sicher weil wenn ich die Zeile weglasse und keinen Index auswähle bekommen ich keinen Fehler. Denke mal wenn der Index gesetzt ist versucht er den Index neu zu zuweisen, da aber kein Tab mehr da ist kommt ein Fehler

Zitat von _BlackDragon_:
1. Verwende doch direkt AddObject(...). Da kannst du dir die zweite Zeile sparen.
Das habe ich schon versucht, nur wird dann kein Text angezeigt, keine Ahnung wieso.

Zitat von _BlackDragon_:
2. Wenn du die Auswahl hast, verwende lieber TTabControl oder TPageControl, denn TTabSet ist nur aus Kompatibilitätsgründen noch vorhanden und absolut veraltet.
Das kann ich leider nicht habe alles Formen die als Parent ein Panel haben.
Hmmm außer ich erstelle für jedes Form ein Tab, das müste eigentlich auch gehen.

Mfg
  Mit Zitat antworten Zitat
_BlackDragon_

Registriert seit: 4. Dez 2007
Ort: Eschweiler
64 Beiträge
 
#4

Re: TabSet mach Probleme

  Alt 17. Mär 2009, 08:50
Hi nochmal.

Zitat von Thomas83:
Zitat von _BlackDragon_:
Hi.

Bist du sicher das der Fehler daher kommt?
Jup bin mir sicher weil wenn ich die Zeile weglasse und keinen Index auswähle bekommen ich keinen Fehler. Denke mal wenn der Index gesetzt ist versucht er den Index neu zu zuweisen, da aber kein Tab mehr da ist kommt ein Fehler
Dann gehe ich jetzt mal davon aus, dass du die Zeile in der DelTabSet-Routine stehen hattest und diese Zeile meintest. Denn so wie der Quelltext (AddTabSet) oben steht, funzt es.

Zitat von Thomas83:
Zitat von _BlackDragon_:

1. Verwende doch direkt AddObject(...). Da kannst du dir die zweite Zeile sparen.
Das habe ich schon versucht, nur wird dann kein Text angezeigt, keine Ahnung wieso.
Da siehst du einen Grund mehr auf die oben genannten Komponenten umzusteigen.

Zitat von Thomas83:
Zitat von _BlackDragon_:
2. Wenn du die Auswahl hast, verwende lieber TTabControl oder TPageControl, denn TTabSet ist nur aus Kompatibilitätsgründen noch vorhanden und absolut veraltet.
Das kann ich leider nicht habe alles Formen die als Parent ein Panel haben.
Hmmm außer ich erstelle für jedes Form ein Tab, das müste eigentlich auch gehen.
Das funktioniert auf jeden Fall. Musst halt nur das Parent des Forms zuweisen, was z.B. im Konstruktor
geht -> TForm.CreateParented(ParentWindow: HWND)

Gruß

BlackDragon
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#5

Re: TabSet mach Probleme

  Alt 17. Mär 2009, 08:51
Dann werde ich es mit TTabControl oder TPageControl mal probieren.
Thx
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#6

Re: TabSet mach Probleme

  Alt 17. Mär 2009, 13:32
Wollte jetzt TPageControl verwenden,
aber ich hätte gerne die Buttons bzw die Tabs unten, ist auch klein Problem.

Nur ist mir das PageControl zu "dick".
Möchte es lieber das man nur die Buttons sieht,
aber das geht wiederum nicht wenn die Tabs unten dargestellt werden.

Gibt es da eventuell einen anderen Ansatz?

Mfg
  Mit Zitat antworten Zitat
SteffenSchm

Registriert seit: 2. Nov 2004
Ort: Herzogenaurach
84 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: TabSet mach Probleme

  Alt 20. Mär 2009, 16:13
Als Ersatz für TabSet würde ich an Deiner Stelle TabControl anstelle von PageControl verwenden. Während PageControl die Seiten der einzelnen Tabs selber verwaltet, musst Du bei TabControl auf den Wechsel des Tabs selber reagieren und die entsprechende Komponente sichtbar machen.

Wo die Tabs erscheinen kann man übrigens über die Eigenschaft "TabPosition" festlegen.
Steffen
  Mit Zitat antworten Zitat
Thomas83

Registriert seit: 7. Jan 2008
180 Beiträge
 
#8

Re: TabSet mach Probleme

  Alt 25. Mär 2009, 16:23
ja aber ich hätte die buttns gerne unten und das geht nur wenn diese dick sind.
Wenn diese flat sind kann ich die nur oben anzeigen lassen und das möchte ich nicht.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz