Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Вниз

Интерфейс как в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.035 c
1-1086077035
Leks
2004-06-01 12:03
2004.06.20
Помогите с испльзованием Dll


3-1085722879
Смертник
2004-05-28 09:41
2004.06.20
Помогите пожалуйста с DBGrid.


1-1086416823
Andriy Tysh
2004-06-05 10:27
2004.06.20
VirtualDBTree or VirtualDBTreeEx -> Demo


1-1086315999
Funnymind
2004-06-04 06:26
2004.06.20
Про форму


1-1086703741
BlackLord2003
2004-06-08 18:09
2004.06.20
ClipText





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский