MG: fixed view units/forms

git-svn-id: trunk@1440 -
This commit is contained in:
lazarus 2002-02-17 19:34:45 +00:00
parent e095b4c22e
commit 256c7e8928
2 changed files with 51 additions and 13 deletions

View File

@ -3194,7 +3194,11 @@ var UnitList: TList;
MainUnitName, Ext, DlgCaption: string;
MainUnitInfo, AnUnitInfo: TUnitInfo;
MainUnitIndex: integer;
ActiveSourceEditor: TSourceEditor;
ActiveUnitInfo: TUnitInfo;
AForm: TForm;
Begin
GetCurrentUnit(ActiveSourceEditor,ActiveUnitInfo);
UnitList:=TList.Create;
try
MainUnitIndex:=-1;
@ -3204,12 +3208,12 @@ Begin
if Project.MainUnit=i then MainUnitIndex:=i;
if Project.Units[i].FormName<>'' then
UnitList.Add(TViewUnitsEntry.Create(
Project.Units[i].FormName,i,false));
Project.Units[i].FormName,i,Project.Units[i]=ActiveUnitInfo));
end else begin
if Project.Units[i].UnitName<>'' then begin
if Project.MainUnit=i then MainUnitIndex:=i;
UnitList.Add(TViewUnitsEntry.Create(
Project.Units[i].UnitName,i,false));
Project.Units[i].UnitName,i,Project.Units[i]=ActiveUnitInfo));
end else if Project.MainUnit=i then begin
MainUnitInfo:=Project.Units[Project.MainUnit];
if Project.ProjectType in [ptProgram,ptApplication,ptCustomProgram]
@ -3228,7 +3232,7 @@ Begin
if MainUnitName<>'' then begin
MainUnitIndex:=UnitList.Count;
UnitList.Add(TViewUnitsEntry.Create(
MainUnitName,i,false));
MainUnitName,i,MainUnitInfo=ActiveUnitInfo));
end;
end;
end;
@ -3240,12 +3244,13 @@ Begin
else
DlgCaption:='View units';
if ShowViewUnitsDlg(UnitList,true,DlgCaption)=mrOk then begin
AnUnitInfo:=nil;
for i:=0 to UnitList.Count-1 do begin
if TViewUnitsEntry(UnitList[i]).Selected then begin
AnUnitInfo:=Project.Units[TViewUnitsEntry(UnitList[i]).ID];
if AnUnitInfo.Loaded then
SourceNoteBook.NoteBook.PageIndex:=AnUnitInfo.EditorIndex
else begin
if AnUnitInfo.Loaded then begin
SourceNoteBook.NoteBook.PageIndex:=AnUnitInfo.EditorIndex;
end else begin
if MainUnitIndex=i then
Result:=DoOpenMainUnit(false)
else
@ -3254,8 +3259,13 @@ Begin
end;
end;
end;
FCodeLastActivated:=not OnlyForms;
DoBringToFrontFormOrUnit;
if (AnUnitInfo<>nil) then begin
AForm:=SourceNotebook;
if OnlyForms and (AnUnitInfo.Form<>nil) then begin
AForm:=TForm(AnUnitInfo.Form);
end;
BringWindowToTop(AForm.Handle)
end;
end;
finally
UnitList.Free;
@ -5962,6 +5972,9 @@ end.
{ =============================================================================
$Log$
Revision 1.223 2002/02/17 19:34:44 lazarus
MG: fixed view units/forms
Revision 1.222 2002/02/11 15:12:00 lazarus
MG: started OI events

View File

@ -42,8 +42,10 @@ type
ListBox: TListBox;
btnOK : TButton;
btnCancel : TButton;
Procedure btnOKClick(Sender : TOBject);
Procedure btnCancelClick(Sender : TOBject);
MultiselectCheckBox: TCheckBox;
Procedure btnOKClick(Sender :TObject);
Procedure btnCancelClick(Sender :TObject);
procedure MultiselectCheckBoxClick(Sender :TObject);
public
constructor Create(AOwner: TComponent); override;
end;
@ -66,7 +68,7 @@ begin
try
ViewUnits.Caption:=Caption;
ViewUnits.ListBox.Visible:=false;
ViewUnits.ListBox.MultiSelect:=MultiSelect;
ViewUnits.MultiselectCheckBox.Enabled:=MultiSelect;
with ViewUnits.ListBox.Items do begin
BeginUpdate;
Clear;
@ -79,8 +81,9 @@ begin
ViewUnits.ListBox.Visible:=true;
Result:=ViewUnits.ShowModal;
if Result=mrOk then begin
for i:=0 to Entries.Count-1 do
for i:=0 to Entries.Count-1 do begin
TViewUnitsEntry(Entries[i]).Selected:=ViewUnits.ListBox.Selected[i];
end;
end;
finally
ViewUnits.Free;
@ -144,9 +147,23 @@ begin
Left:= Pad;
Width:= Self.Width - (Self.Width - btnOK.Left) - (2*pad);
Height:= Self.Height - Top - Pad;
Visible:= true;
MultiSelect:= false;
Name := 'Listbox';
Visible:= true;
end;
MultiselectCheckBox:=TCheckBox.Create(Self);
with MultiselectCheckBox do begin
Parent:=Self;
Name:='MultiselectCheckBox';
Left:=btnOK.Left;
Top:=btnCancel.Top+btnCancel.Height+2*pad;
Width:=btnOk.Width;
Height:=25;
Caption:='Multi';
Checked:=false;
OnClick:=@MultiselectCheckBoxClick;
Visible:=true;
end;
end;
end;
@ -163,6 +180,11 @@ Begin
ModalResult := mrCancel;
end;
procedure TViewUnits.MultiselectCheckBoxClick(Sender :TObject);
begin
ListBox.Multiselect:=MultiselectCheckBox.Checked;
end;
initialization
{ $I viewunits1.lrs}
@ -171,6 +193,9 @@ initialization
end.
{
$Log$
Revision 1.9 2002/02/17 19:34:45 lazarus
MG: fixed view units/forms
Revision 1.8 2001/04/04 12:20:34 lazarus
MG: added add to/remove from project, small bugfixes