AGB  ·  Datenschutz  ·  Impressum  







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

PagControl & TabSheet - Refresh erzwingen?

Offene Frage von "cBoB"
Ein Thema von cBoB · begonnen am 19. Apr 2004 · letzter Beitrag vom 19. Apr 2004
Antwort Antwort
Benutzerbild von cBoB
cBoB

Registriert seit: 5. Apr 2004
Ort: Berlin
61 Beiträge
 
Delphi 5 Professional
 
#1

PagControl & TabSheet - Refresh erzwingen?

  Alt 19. Apr 2004, 13:41
Hallo Delphianer!

Nachdem ich darauf aufmerksam gemacht wurde, einer Anfrage auch einen aussagekräftigen Titel zu spendieren - hier nun der 2. Versuch
Folgendes Problem:
Während der Laufzeit sollen TabSheets in einem PageControl erzeugt werden - das klappt bereits.
In den TabSheets sollen aber wiederum ComboBoxen erzeugt werden, wie unten hoffentlich noch zu erkennen (Aufruf von DevRep). Dies funktioniert eigentlich auch, bis auf den Schönheitsfehler, dass auf dem ersten TabSheet die ComboBox nicht sofort angezeigt wird, sondern erst nachdem ein anderes TabSheet angeklickt bzw aktiviert wurde und danach dann wieder zurück zum 1. TabSheet gewechselt wird. Damit könnt ich auch noch leben - aber es kann der Fall eintreten, dass nur ein TabSheet erzeugt werden soll, dann kann ich durch das Wechseln die ComboBox auf der ersten Seite nicht mehr zum Erscheinen zwingen. Was könnte ich übersehen haben oder wo liegt bei mir ein Fehler?!

Auszug aus meinem Code:

Delphi-Quellcode:
procedure TForm1.cr_tabs; //TabSheets sollen erzeugt werden
const
  TabTitles: array[0..4] of ShortString = ('Gerät1','Gerät2','Gerät3','Gerät4','Gerät5' );
var
  i: integer;
begin
  for i := 0 to (devcount-1) do //devcount ist globale Variable, Anzahl der TabSheets
    with TTabSheet.Create(Self) do
    begin
      PageControl := Form1.PageControl1; //PageControl1 existiert schon zur Entwurfszeit
      Name := 'ts' + InttoStr(i);
      ShowMessage(Name);
      Caption := TabTitles[i];
      DevRep(PageControl1.Pages[i]); //erzeugt ComboBox auf aktuellem TabSheet, ComboBox wird
                                       //aber auf dem ersten TabSheet nicht sofort angezeigt,
                                       //erst nachdem anderes Tabsheet aktiviert wurde und danach
                                       //wieder zurückgewechselt wird, wird's angezeigt
   end;
end;

procedure TForm1.dest_tabs; //TabSheets werden einer nach dem anderen gekillt.
var
  i: integer;
begin
  for i := (devcount-1) downto 0 do
    with Form1.PageControl1 do
    begin
      Pages[i].Free;
   end;
end;


procedure TForm1.Button1Click(Sender: TObject); //jetzt sollen Tabsheets erzeugt werden!
begin
     dest_tabs; //erstmal alle löschen, für geordnete Verhältnisse
     devcount:=5; //5 Stück sollen erzeugt werden
     cr_tabs;; //jetzt erzeuge sie!
     Form1.PageControl1.Refresh;; //Refresh - nutzt aber nix!
end;

procedure DevRep(Sender: TTabSheet); //ComboBox wird erzeugt
var ListItem: TStrings;
    IndexDList: Integer;
begin
with TCombobox.Create(Sender) do
  begin
    Parent:=Sender;
    top:=12;
    left:=8;
    IndexDList := Items.Add('Gerät1');
  end;

end;

Vielen Dank erstmal fürs durchlesen!
-c-
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: PagControl & TabSheet - Refresh erzwingen?

  Alt 19. Apr 2004, 15:11
Hai cBoB,

ich kann das nicht bestätigen. Bei mir wird die ComboBox auch angezeigt wenn ich nur ein TabSheet erzeugen lasse.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von cBoB
cBoB

Registriert seit: 5. Apr 2004
Ort: Berlin
61 Beiträge
 
Delphi 5 Professional
 
#3

Re: PagControl & TabSheet - Refresh erzwingen?

  Alt 19. Apr 2004, 15:29
@Sharky:

Hm, dann versuch mal bitte mit einem 2.Button und den selben Befehlen danach eine andere Anzahl an Sheets zu erzeugen, sprich im "Button2Click" dann den devcount auf meinetwegen 7 setzen und dann das erste Sheet betrachten, nachdem erst Button1 und dann Button2 geklickt wurde?
BTW: Welche Delphiversion nutzt Du? Ich bin hier leider vorerst auf Delphi4 angewiesen.

Gruß
-c-

[Edit] Oops, sorry der Frage, hab schon gesehen welche Version Du benutzt![/Edit]
  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 10:27 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