unit Unit3; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, comCtrls, ExtCtrls, TeamUnit, StdCtrls; type TTeamForm = class(TForm) MainMenu1: TMainMenu; file1: TMenuItem; Save1: TMenuItem; Exit1: TMenuItem; ListBox1: TListBox; Constructor Create( A : Tcomponent; ViewMode : Byte; _X : TMenuItem; TT : String ); overload; Procedure FormShow( Sender : TObject ); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Exit1Click(Sender: TObject); procedure Save1Click(Sender: TObject); procedure FormDragDrop(Sender, Source: TObject; X, Y: Integer); procedure ListBox1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); private { Private declarations } public D : Array of TGroupBox; Teams : Array of TTeam; N : TMenuItem; X : TMenuItem; { Public declarations } end; implementation {$R *.DFM} uses unit1; { TTeamForm } constructor TTeamForm.Create(A: Tcomponent; ViewMode: Byte; _X: TMenuItem; TT:String); Var P : TTreeNode; S : ^String; begin //ShowMessage(TT.Text); X := _X; Inherited Create(Application); //Show(O,ViewMode); N := TMenuItem.Create( self ); N.GroupIndex := 42; N.Caption := crop(TT); N.OnClick := FormShow; //P := TreeView1.Items.Add(nil,TT.Text); Listbox1.Items.Add( Crop(TT) ); Caption := 'Viewing: ' + Crop(TT); //P.Data := TT.Data; SetLength(D,1); SetLength(Teams,1); D[0] := TGroupBox.Create(Self); D[0].Parent := Self; // S := p.Data; Teams[0] := tTeam.Create(TT); //D[0].Align := alClient; D[0].Left := 0; D[0].Top := 0; //D[0].BevelOuter := bvNone; // D[0].OnDragDrop := FormDragDrop; X.Add(N); FormShow(Self); end; procedure TTeamForm.FormShow(Sender: TObject); var I : Integer; begin WindowState := wsNormal; ChDir( ExtractFilePath( Application.EXEName )); For I := 0 to High(Teams) Do Teams[I].EditMode(D[I]); // Teams[0].EditMode(D[0]); ClientWidth := D[0].Width*Length(Teams); ClientHeight := D[0].Height + 10 + Listbox1.Height; {For I := 0 to High(D) Do ClientWidth := ClientWidth + D[I].Width; }// ClientWidth := D[0].Width; Show; end; procedure TTeamForm.FormClose(Sender: TObject; var Action: TCloseAction); begin X.Remove(N); N.Free; Free; end; procedure TTeamForm.Exit1Click(Sender: TObject); begin Close; end; procedure TTeamForm.Save1Click(Sender: TObject); Var I : Integer; begin ChDir( ExtractFilePath( Application.ExeName ) ); If Length(Teams) =1 Then Teams[0].SaveToFile Else For I := 0 to ListBox1.Items.Count-1 Do If ListBox1.Selected[I] Then Teams[i].SaveToFile; end; procedure TTeamForm.FormDragDrop(Sender, Source: TObject; X, Y: Integer); var I : Integer; begin Caption := 'Viewing: Alliance'; // Showmessage( Source.ClassName ); SetLength(D,Length(D)+1); SetLength(Teams,Length(Teams)+1); D[High(d)] := TGroupBox.Create(Self); D[High(D)].Parent := Self; D[High(D)].Left := 0; D[High(D)].Top := 0; For I := 0 to High(D)-1 Do D[High(d)].Left := D[High(d)].Left + D[I].Width; //D[High(D)].BevelOuter := bvNone; ListBox1.Items.Add(TListBox(Source).Items.Strings[GetSel]); TEams[High(Teams)] := tTeam.Create(TListBox(Source).Items.Strings[GetSel]+'.rob'); FormShow(Self); // D[0].OnDragDrop := FormDragDrop; end; procedure TTeamForm.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin If Source is TListBox then Accept := True; end; end.