Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание динамических обьектов и работа с ними, определить имена [D7]


jcrush ©   (2005-05-23 08:10:00) 

Создавать динамические обьекты я умею, а вот работать с ними нет, у меня создаются TabControl с Caption которые я беру из списка по клику, мне нужно создать в TabCheet memo, примеры тоже по этому есть...

Но как мне потом определить чтобы ну допустим добавить текст в нужное мне memo и как создать memo с нужным именем?

конкртеный пример при клике по Caption нужно создать richedit и добавить текст именно в тот richedit который имеет имя заголовка TabControl
спасибо!


jcrush   (2005-05-27 02:12:00) [1]

Пока напарников не имеется, пока я остановился на варианте Ega23


Cobalt   (2005-05-26 15:30:00) [2]

Рекомендую отойти от функционального программирования, и перейти к объектно-оиентированного - это (ИМХО) лучший способ выделения функционала.

Ещё раз - см.
Cobalt ©   (23.05.05 15:42) [11]
Cobalt ©   (23.05.05 15:49) [12]

Сервер - [приём/отправка сообщений по пользователям] - [отображение сообщений по пользователям] - [подкраска/загрузка]

[отображение сообщений по пользователям] - [загрузка из "истории"]

Перед тобой стоит большая задача - самомуспроектировать интерфейсы между этими функционалами.
P.S.
Исходники, я думаю, тут не помогут - надо (судя по всему) полностью перепроектировать.
То есть если кто тебе и поможет - так это напарник, который заинтересован в проекте.


jcrush   (2005-05-24 03:22:00) [3]

ICQ: 966255


jcrush   (2005-05-24 03:16:00) [4]

структура такая:

функция 1. отправка сообщений и вывод на экран 1
функция 2. вывод сообщений (если сообщение имеется в памяти) на экран 1
функция 3. подкраска своих и чужих сообщений (Экран 1) в зависимости от набора символов, так же установка атрибутов(жирности, цвета)...
функция 4. Скроллинг при получении и отправке сообщений
Функция 5. Загрузка Истории из файлов на Экран 1.

Эран 1 - richedit

впринципе я могу поделиться исходниками, если их не будут выдавать за свои, ну и спасибо за любую помощь..


jcrush   (2005-05-24 02:58:00) [5]

Мда.. все оказалось сложнее чем я думал... создать удалось а вот функционал не работает :((


Cobalt   (2005-05-23 15:49:00) [6]

Небольшой примерчик - каждая вкладка у тебя отображает сообщения с одним адресатом.
Соответственно у тебя должны быть предусмотрены структуры (из 2-ой части), отвечающие за
- хранение сообщений в текущей сесии
- связь сесии сообщений с визуальным контролом (вкладка TSheet, далее везде - мемо, едиты, кнопки - с адресацией по к-либо ID (номер сесии сообщений) memoTextSeesion12, btnSendMessage12 и т.д.)
Хотя, можно и вообще обойтись без имён, а хранить это в специальных структурах...

В общем - проблема проектирования.


Cobalt   (2005-05-23 15:42:00) [7]

2 jcrush ©   (23.05.05 12:32)
Насколько я понял - ты единственный разработчик.
К сожалениюю, в дистрибутив не входят исходники, чтобы дать тебе лучший совет :(
Посему всё бремя анализа структуры и функционала возлагается на тебя.

Но на первый взгляд -
1) функционал, отвечающий за взаимодействие с сервером (чисто невизуальная часть)
2) функционал, отвечающий за отображение сообщений (визуальная часть)
3) Настройки всякие

2-я часть должна соответствовать 1-ой части.
Т.о. вначале приведение в порядок 1-ю часьт, а затем уже 2-ю.

Иначе - бардак.


Ega23   (2005-05-23 15:18:00) [8]

Для визуалок лучше ControlCount

Только не забывать где какой Parent


msguns   (2005-05-23 15:05:00) [9]

>jcrush ©   (23.05.05 12:32) [7]
>вот на это ругаться не будет да?
>for i:=0 to ComponentCount-1 do

Для визуалок лучше ControlCount


Ega23   (2005-05-23 12:35:00) [10]

похоже именно то что  мне нужно

Далеко не факт. Это одна из возможных реализаций (не самая лучшая, кстати) твоей "мини-задачи" ( созадть два memo и одну кнопку, при нажатии которой добавить ....).
В общем и целом - Cobalt правильно написал.


jcrush   (2005-05-23 12:32:00) [11]

вот на это ругаться не будет да?
for i:=0 to ComponentCount-1 do

Завтра попробую... очень интересно похоже именно то что  мне нужно, большое спасибо :)


Ega23   (2005-05-23 12:20:00) [12]

На procedure RxDBLookupCombo1DropDown(Sender: TObject);
внимания не обращать. Атавизьм остался...  :о)


Ega23   (2005-05-23 12:19:00) [13]

Можно увидеть конкретный пример, самый простой допустим
созадть два memo и одну кнопку, при нажатии которой добавить текст '1'в один мемо и '2' в другой, но независимо от  того в каком порядке создан memo, т.е. покажите как определить куда добавить текст в зависимости Кому сообщение?



unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   procedure RxDBLookupCombo1DropDown(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure ButtonClick(Sender:TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.RxDBLookupCombo1DropDown(Sender: TObject);
begin
Beep;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
With TMemo.Create(Self) do
 begin
  Parent:=Self;
  SetBounds(10,10,100,100);
  Name:='MEMO1';
  Text:='';
 end;

With TMemo.Create(Self) do
 begin
  Parent:=Self;
  SetBounds(130,10,100,100);
  Name:='MEMO2';
  Text:='';
 end;

With TButton.Create(Self) do
 begin
  Parent:=Self;
  Left:=200;
  Top:=200;
  OnClick:=ButtonClick;
  Caption:='Click Here'
 end;

end;

procedure TForm1.ButtonClick(Sender: TObject);
var
i:Integer;
begin
for i:=0 to ComponentCount-1 do
 begin
  if not (Components[i] is TMemo) then Continue;
  if TMemo(Components[i]).Name='MEMO1' then TMemo(Components[i]).Text:='1';
  if TMemo(Components[i]).Name='MEMO2' then TMemo(Components[i]).Text:='2';
 end;
end;

end.


jcrush   (2005-05-23 12:06:00) [14]

Привет Cobalt, как я могу создать классы кода я их никогда не создавал, что это такое?

Можно увидеть конкретный пример, самый простой допустим
созадть два memo и одну кнопку, при нажатии которой добавить текст '1'в один мемо и '2' в другой, но независимо от  того в каком порядке создан memo, т.е. покажите как определить куда добавить текст в зависимости Кому сообщение?


Cobalt   (2005-05-23 10:59:00) [15]

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

Всё это тебе предстоит проанализировать и составить чёткую картину взамиодействия, создать структуры (классы), которые будут отвечать за конкретный функционал, связывать компоненты.

Итогда этот вопрос разрешится автоматически.


jcrush   (2005-05-23 09:29:00) [16]

Хорошо посмотри на картинку программы:

http://stfw.ru/forums.php?m=posts&q=604

Сейчас Richedit не денамический, задача загружать добавлять и красить строки, пока все это реализованно через один richedit, в который добавляются и грузяться строки, при нажатии Caption загружается из файла последняя строка в Richedit, типа эмитации того что Richedit динамический..


Cobalt   (2005-05-23 08:27:00) [17]

Это уже зависит от всейзадачи, а не от того кусочека, что ты привел.
Это фишка проектирования.
Так что приводи ВСЮ задачу.


Наверх

Титульная страница Поиск, карта сайта Написать письмо