Открыть окно для каждого контакта
Реализация открытия окна для каждой записи в списке. Вобщем как в Miranda IM. Пишу чат для локалки. Какие варианты?
собственно в архивчике примерчик, может подойдет.
Спасибо, пример хорош, извини за наивность, но можно ли чтобы каждое окно появлялось на панели задач.
Если да, то можно создать класс (для окна) и сделать динамический массив из объектов этого класса.... Далее дело техники...
Т.е. можно создать обычным способом окно (в Delphi), накидать туда компонентов... сделать функциональность, и потом объявить ни как по стандарту (пр.: Form1: TForm1), а вот так:
type TForms = array of TForm1;
var Forms: TForms;
----
и создавать потом Forms[1].Create() и т.п.
ИМХО, должно работать....
PS: Если не так понял, то извиняйте...
Если не трудно, мне бы исходник
Сделать надо так:
1. Создаете проект.
2. Создаете новую форму, кидаете туда компонентов и т.п.
3. убираете в модуле новой формы переменную типа объект класса новой формы.
т.е. убираете пример
Код:
var Form2: TForm2;
3. В модуле проекта (*.dpr) убираете создание новой формы.
Пример:
Код:
Application.CreateForm(TForm2, Form2);
4. И пишете процедуру создания форм:
Код:
var
Forms: TForm2;
begin
Application.CreateForm(TForm2, Forms);
Forms.Show;
end;
Forms: TForm2;
begin
Application.CreateForm(TForm2, Forms);
Forms.Show;
end;
и все......
если что, то для удобства можно вставить после создания формы
Forms.Name := 'SomeName';
-----------------------
Объяснил наверно я не очень, прикреплю исходники....
Цитата:
можно ли чтобы каждое окно появлялось на панели задач
Можно. Например, так:
Код:
type
TContactForm = class(TForm)
//...
protected
procedure CreateParams(var Params: TCreateParams); override;
//...
end;
procedure TContactForm.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle:=WS_EX_APPWINDOW;
Params.WindowClass.hIcon:=Application.Icon.Handle;
end;
TContactForm = class(TForm)
//...
protected
procedure CreateParams(var Params: TCreateParams); override;
//...
end;
procedure TContactForm.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle:=WS_EX_APPWINDOW;
Params.WindowClass.hIcon:=Application.Icon.Handle;
end;
Цитата:
В модуле проекта (*.dpr) убираете создание новой формы
Чтобы этим не заниматься, в настройках дельфи надо убрать галку "Auto create forms & data modules". (В BDS 4 - Tools->Options->Environment options->VCL Designer)
Спасибо!