Autor Beitrag
AndreM
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

Win2k, WinXP, Suse 10
D7 Ent
BeitragVerfasst: So 18.01.04 12:55 
Hallo,

ich habe eine kleine Frage zur Positionierung eines zur Laufzeit erzeugten Frames.

Und zwar erzeuge ich über folgenden Code einen Frame mit unterschiedlichen Inhalt durch Ändern des Wertes in der Combobox.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.ComboBox1Change(Sender: TObject);
  begin
    { Alten Frame entsorgen }
    FFrame.Free;
    FFrame:=NIL;

    { neuen erzeugen }
    if ComboBox1.Text='Typ1'
      then FFrame:=TFrame2.Create(Self);
    if ComboBox1.Text='Typ2'
      then FFrame:=TFrame3.Create(Self);
    {..}

    { gemeinsame Eigenschaften aller Frames setzen }
    if Assigned(FFrame) then FFrame.Parent:=Self;
  end;


Das ganze funktionier auch schon mal einwandfrei. Nur leider wird der neue Frame dann immer oben Links im Form angezeigt. Wie kann ich jedoch beim erstellen des Frames die Positionierung mit Left und Top angeben?
AndreM Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

Win2k, WinXP, Suse 10
D7 Ent
BeitragVerfasst: So 18.01.04 13:10 
Ok, hab es mitlwerweile selber gelöhst!

Das ganze geht mir

FFrame.Left:= 130;
FFrame.Top:= 130;


Dann sieht das ganze also so aus!
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.ComboBox1Change(Sender: TObject); 
  begin 
    { Alten Frame entsorgen } 
    FFrame.Free; 
    FFrame:=NIL

    { neuen erzeugen } 
    if ComboBox1.Text='Typ1' 
      then 
      begin
        FFrame:=TFrame2.Create(Self); 
        FFrame.Left:= 130;
        FFrame.Top:= 130;
      end;
    if ComboBox1.Text='Typ2' 
      then FFrame:=TFrame3.Create(Self); 
    {..} 

    { gemeinsame Eigenschaften aller Frames setzen } 
    if Assigned(FFrame) then FFrame.Parent:=Self; 
  end;