Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Интерфейс как в Delphi?   Найти похожие ветки 

 
GanibalLector ©   (2004-06-06 14:48) [0]

Знаю,что вопрос этот задавался сотни раз,но раньше как-то не обращал внимания на все это.Итак,вопрос:как сделать интерфейс подобный Delphi или IBExpert(т.е.2-3 постоянно открытые формы).Собственно интересует механизм...КАК???


 
jack128 ©   (2004-06-06 15:07) [1]

в OnActivate главной формы пропиши MyOtherForm1.Show; MyOtherForm2.Show; я думаю..


 
GanibalLector ©   (2004-06-06 15:11) [2]

2 jack128 ©   (06.06.04 15:07) [1]
Не...это не то.А если вдруг потребуется СРОЧНО вернутся в Form1 и что???пока не закрою Form2 в Form1 не попаду.
Тут надо что-то другое


 
YurikGl ©   (2004-06-06 15:12) [3]

MDI+f1


 
YurikGl ©   (2004-06-06 15:15) [4]

Если конкретнее, то у главной формы выставляешь
FormStyle = fsMDIForm

У дочерних
FormStyle = fsMDIChild;


 
GanibalLector ©   (2004-06-06 15:16) [5]

2 YurikGl ©
Нет...с MDI я знаком.
Я  хочу изменить КООРДИНАЛЬНО интерфейс,а MDI тут не при чем(там все форму будут открываться в главной,что не устраивает)


 
jack128 ©   (2004-06-06 15:18) [6]


> А если вдруг потребуется СРОЧНО вернутся в Form1 и что???пока
> не закрою Form2 в Form1 не попаду.
во первых закрывать нечего не надо - достаточно просто кликнуть по нужному окну мышкой, покрайней мере Дельфи я делаю так ;-) (не считая горячих клавиш)  

Вообще я погоречился - это нужно прописать в OnActivate Application, конечно.


 
GanibalLector ©   (2004-06-06 15:18) [7]

2 YurikGl ©
Ты что  Delphi не видел???  :)
Сам посмотри...панель инструментов,инспектор обьектов,окно формы.И ты в любой момент можешь выбрать любое окно и работать с ним...вот и мне так нужно.


 
YurikGL ©   (2004-06-06 15:19) [8]


> 2 jack128 ©   (06.06.04 15:07) [1]
> Не...это не то.А если вдруг потребуется СРОЧНО вернутся
> в Form1 и что???пока не закрою Form2 в Form1 не попаду.
> Тут надо что-то другое


Почему не попадешь? Это ж не showmodal?


 
GuAV ©   (2004-06-06 15:21) [9]

Длай каждую форму видной на таскбаре - будет срочность.
или в каждой - кнопки для показать каждую из остальных.


 
GanibalLector ©   (2004-06-06 15:21) [10]

2 jack128 ©
Ну,незнаю.Попробовал я так,как ты говоришь,но Form1 при открытой Form2 вообще не активен.


 
YurikGL ©   (2004-06-06 15:23) [11]

Для прикола сделал так:
procedure TForm2.FormCreate(Sender: TObject);
begin
Form2.show;
end;

Между фомами перемещаюсь мышкой


 
GuAV ©   (2004-06-06 15:26) [12]


> но Form1 при открытой Form2 вообще не активен

А разве в IDE Delphi мож быть более одной активной формы?


 
GanibalLector ©   (2004-06-06 15:26) [13]

А что ставить в BorderStyle и FormStyle? По умолчанию?


 
YurikGL ©   (2004-06-06 15:27) [14]


> GanibalLector ©   (06.06.04 15:26) [13]
> А что ставить в BorderStyle и FormStyle? По умолчанию?


Что тебе надо, то и ставь. :)


 
GuAV ©   (2004-06-06 15:28) [15]


> А что ставить в BorderStyle и FormStyle? По умолчанию?

Твой интэрфэйс - Твоё дело :)


 
jack128 ©   (2004-06-06 15:29) [16]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 AppEvnts;

type
 TForm1 = class(TForm)
   ApplicationEvents1: TApplicationEvents;
   procedure ApplicationEvents1Activate(Sender: TObject);
   procedure ApplicationEvents1Deactivate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

var
 ActiveForm: TForm = nil;

procedure TForm1.ApplicationEvents1Activate(Sender: TObject);
var
 i: Integer;
begin
 for i := 0 to Screen.FormCount - 1 do
   Screen.Forms[i].Show;
 if Assigned(ActiveForm) then
   ActiveForm.SetFocus
 else
   Application.MainForm.SetFocus;
end;

procedure TForm1.ApplicationEvents1Deactivate(Sender: TObject);
begin
 ActiveForm := Screen.ActiveForm;
end;

end.


 
GanibalLector ©   (2004-06-06 15:29) [17]

2 GuAV ©
Я не просил две активные формы.Я просил переключение мышью между ними.


 
YurikGL ©   (2004-06-06 15:31) [18]

YurikGL ©   (06.06.04 15:23) [11]

Переключает.


 
GanibalLector ©   (2004-06-06 15:35) [19]

2 YurikGL
Да нифига не переключает твоё [11]


 
YurikGL ©   (2004-06-06 15:39) [20]

GanibalLector ©   (06.06.04 15:35) [19]
2 YurikGL
Да нифига не переключает твоё [11]

Как, не переключает? Я ж проверял.....

А у тебя window какой? Если 3.0, - может и не переключать.:)


 
GanibalLector ©   (2004-06-06 15:39) [21]

2 jack128 ©   (06.06.04 15:29) [16]
Спасибо тебе БОЛЬШОЕ!!!Как всегда выручил.


 
GanibalLector ©   (2004-06-06 15:41) [22]

YurikGL ©   (06.06.04 15:39) [20]
>Я ж проверял.....
Видать плохо проверял...
>А у тебя window какой?
ХР вообщето.

jack128 лучший!!


 
YurikGL ©   (2004-06-06 15:44) [23]


> GanibalLector ©   (06.06.04 15:41) [22]
> YurikGL ©   (06.06.04 15:39) [20]
> >Я ж проверял.....
> Видать плохо проверял...
> >А у тебя window какой?
> ХР вообщето.
>
> jack128 лучший!!

С последним, - не спорю

У меня XP+D7

Вот вся программа

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs;
type
 TForm1 = class(TForm)
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.dfm}
end.//т.е. без изменений

unit Unit2;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs;
type
 TForm2 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
show;
end;
end.

Изменения минимальны. При запуске отображаются оба окна одно поверх другого, но если их разнести между собой, то можно переключаться мышкой.


 
GanibalLector ©   (2004-06-06 15:51) [24]

2 YurikGL ©   (06.06.04 15:44) [23]
Все догнал...так и у меня работает.А я,млин,в Form1 писал Form2.Show -вот поэтому и не работало...
Спасибо и тебе YurikGL !


 
jack128 ©   (2004-06-06 16:11) [25]


> jack128 лучший!!
Спасибо, конечно, но в данном конкретном случае я бред написал. Дело в том, что весь мой код нужен только если ты хочешь чтобы твои формы показывались при активации программы в ЛЮБОМ случае, то есть даже если ты одно из окон закрыл. А дельфи такого нету.. ;-(
Так что лудше в данном случае - метод YurikGL"а. Или можно просто установить у нужных те форм свойство Visible := True в дезин тайм ;-)


 
YurikGL ©   (2004-06-06 18:17) [26]


> jack128 ©   (06.06.04 16:11) [25]
>
> > jack128 лучший!!


Я подтвердил это основываясь на общем впечатлении, которое у меня сложилось о тебе :)



Страницы: 1 вся ветка

Текущий архив: 2004.06.20;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.045 c
3-1085486711
Dron
2004-05-25 16:05
2004.06.20
Проблема с использованием Events в Interbase


1-1086216041
hiperLogun
2004-06-03 02:40
2004.06.20
XP Menu


1-1086701667
Chlavik
2004-06-08 17:34
2004.06.20
DragAcceptFiles


4-1084476448
Druid
2004-05-13 23:27
2004.06.20
Работа с ресурсами файла


14-1086336560
Baks
2004-06-04 12:09
2004.06.20
Из рубрики Знаменательная математика3