Folgender Code aus einem Programm macht im Großen und Ganzen das was er soll.
Aber eben nur fast.
Delphi-Quellcode:
procedure cr_tabs;
const
TabTitles: array[0..4] of ShortString = ('Gerät1','Gerät2','Gerät3','Gerät4','Gerät5' );
var
i: integer;
cb_devs:TCombobox;
begin
for i := 0 to (devcount-1) do
with TTabSheet.Create(Form1.PageControl1) do
begin
PageControl := Form1.PageControl1;
Name := 'ts' + InttoStr(i);
Caption := TabTitles[i];
cb_devs:= TComboBox.Create(PageControl);
cb_devs.Parent:=Form1.PageControl1.Pages[i];
cb_devs.top:=12;cb_devs.left:=8;
end;
end;
procedure dest_tabs;
const
TabTitles: array[0..4] of ShortString = ('Gerät1','Gerät2','Gerät3','Gerät4','Gerät5' );
var
i: integer;
begin
for i := (devcount-1) downto 0 do
with Form1.PageControl1 do
begin
Pages[i].Free;
end;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
dest_tabs;
devcount:=1;
N11.Checked:=True;
cr_tabs;
Form1.Refresh;
end;
procedure TForm1.N21Click(Sender: TObject);
...
Nun das Problem: die Prozeduren N11Click bis N51Click werden über ein Menü gesteuert, dabei ist devcount ein globale Variable und erthält die Werte 1 bis 5.
Dabei werden dynamisch Tabshests erzeugt und zwar soviele wie devcount angibt. Soweit sogut und funktiniert auch. zum Problem kommt es aber, wenn ich in den erzeugten Tabsheets wiederum eine Combobox erzeuge. Diese wird bei mehreren Sheets auch erzeugt, aber auf dem ersten wird diese nach dem ersten Durchlauf nicht mehr angezeigt. Erst wenn ich auf ein anderes Sheet wechsele und dann wieder auf das erste gehe, dann wird die Combobox richtig angezeigt was bei nur einem Sheet natürlich zu nem Problem wird.
Wer kann helfen, vorausgesetzt er sieht überhaupt durch den ziemlich wüsten Code durch??
-c-