Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
ВнизСоздание динамических обьектов и работа с ними, определить имена Найти похожие ветки
← →
jcrush © (2005-05-23 08:10) [0]Создавать динамические обьекты я умею, а вот работать с ними нет, у меня создаются TabControl с Caption которые я беру из списка по клику, мне нужно создать в TabCheet memo, примеры тоже по этому есть...
Но как мне потом определить чтобы ну допустим добавить текст в нужное мне memo и как создать memo с нужным именем?
конкртеный пример при клике по Caption нужно создать richedit и добавить текст именно в тот richedit который имеет имя заголовка TabControl
спасибо!
← →
Cobalt © (2005-05-23 08:27) [1]Это уже зависит от всей задачи, а не от того кусочека, что ты привел.
Это фишка проектирования.
Так что приводи ВСЮ задачу.
← →
jcrush © (2005-05-23 09:29) [2]Хорошо посмотри на картинку программы:
http://stfw.ru/forums.php?m=posts&q=604
Сейчас Richedit не денамический, задача загружать добавлять и красить строки, пока все это реализованно через один richedit, в который добавляются и грузяться строки, при нажатии Caption загружается из файла последняя строка в Richedit, типа эмитации того что Richedit динамический..
← →
Cobalt © (2005-05-23 10:59) [3]Для начала тебе надо провести анализ твоей программы - какие в ней есть сущности.
Все контролы - отвечают за что-то.
Ветки общения с людьми.
Один (несколько) текущих подготовленных к отправке сообщений каждому из людей.
Всё это тебе предстоит проанализировать и составить чёткую картину взамиодействия, создать структуры (классы), которые будут отвечать за конкретный функционал, связывать компоненты.
Итогда этот вопрос разрешится автоматически.
← →
jcrush © (2005-05-23 12:06) [4]Привет Cobalt, как я могу создать классы кода я их никогда не создавал, что это такое?
Можно увидеть конкретный пример, самый простой допустим
созадть два memo и одну кнопку, при нажатии которой добавить текст "1"в один мемо и "2" в другой, но независимо от того в каком порядке создан memo, т.е. покажите как определить куда добавить текст в зависимости Кому сообщение?
← →
Ega23 © (2005-05-23 12:19) [5]Можно увидеть конкретный пример, самый простой допустим
созадть два 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.
← →
Ega23 © (2005-05-23 12:20) [6]На
procedure RxDBLookupCombo1DropDown(Sender: TObject);
внимания не обращать. Атавизьм остался... :о)
← →
jcrush © (2005-05-23 12:32) [7]вот на это ругаться не будет да?
for i:=0 to ComponentCount-1 do
Завтра попробую... очень интересно похоже именно то что мне нужно, большое спасибо :)
← →
Ega23 © (2005-05-23 12:35) [8]похоже именно то что мне нужно
Далеко не факт. Это одна из возможных реализаций (не самая лучшая, кстати) твоей "мини-задачи" (созадть два memo и одну кнопку, при нажатии которой добавить ....).
В общем и целом - Cobalt правильно написал.
← →
msguns © (2005-05-23 15:05) [9]>jcrush © (23.05.05 12:32) [7]
>вот на это ругаться не будет да?
>for i:=0 to ComponentCount-1 do
Для визуалок лучше ControlCount
← →
Ega23 © (2005-05-23 15:18) [10]Для визуалок лучше ControlCount
Только не забывать где какой Parent
← →
Cobalt © (2005-05-23 15:42) [11]2 jcrush © (23.05.05 12:32)
Насколько я понял - ты единственный разработчик.
К сожалениюю, в дистрибутив не входят исходники, чтобы дать тебе лучший совет :(
Посему всё бремя анализа структуры и функционала возлагается на тебя.
Но на первый взгляд -
1) функционал, отвечающий за взаимодействие с сервером (чисто невизуальная часть)
2) функционал, отвечающий за отображение сообщений (визуальная часть)
3) Настройки всякие
2-я часть должна соответствовать 1-ой части.
Т.о. вначале приведение в порядок 1-ю часьт, а затем уже 2-ю.
Иначе - бардак.
← →
Cobalt © (2005-05-23 15:49) [12]Небольшой примерчик - каждая вкладка у тебя отображает сообщения с одним адресатом.
Соответственно у тебя должны быть предусмотрены структуры (из 2-ой части), отвечающие за
- хранение сообщений в текущей сесии
- связь сесии сообщений с визуальным контролом (вкладка TSheet, далее везде - мемо, едиты, кнопки - с адресацией по к-либо ID (номер сесии сообщений) memoTextSeesion12, btnSendMessage12 и т.д.)
Хотя, можно и вообще обойтись без имён, а хранить это в специальных структурах...
В общем - проблема проектирования.
← →
jcrush © (2005-05-24 02:58) [13]Мда.. все оказалось сложнее чем я думал... создать удалось а вот функционал не работает :((
← →
jcrush © (2005-05-24 03:16) [14]структура такая:
функция 1. отправка сообщений и вывод на экран 1
функция 2. вывод сообщений (если сообщение имеется в памяти) на экран 1
функция 3. подкраска своих и чужих сообщений (Экран 1) в зависимости от набора символов, так же установка атрибутов(жирности, цвета)...
функция 4. Скроллинг при получении и отправке сообщений
Функция 5. Загрузка Истории из файлов на Экран 1.
Эран 1 - richedit
впринципе я могу поделиться исходниками, если их не будут выдавать за свои, ну и спасибо за любую помощь..
← →
jcrush © (2005-05-24 03:22) [15]ICQ: 966255
← →
Cobalt © (2005-05-26 15:30) [16]Рекомендую отойти от функционального программирования, и перейти к объектно-оиентированного - это (ИМХО) лучший способ выделения функционала.
Ещё раз - см.
Cobalt © (23.05.05 15:42) [11]
Cobalt © (23.05.05 15:49) [12]
Сервер - [приём/отправка сообщений по пользователям] - [отображение сообщений по пользователям] - [подкраска/загрузка]
[отображение сообщений по пользователям] - [загрузка из "истории"]
Перед тобой стоит большая задача - самому спроектировать интерфейсы между этими функционалами.
P.S.
Исходники, я думаю, тут не помогут - надо (судя по всему) полностью перепроектировать.
То есть если кто тебе и поможет - так это напарник, который заинтересован в проекте.
← →
jcrush © (2005-05-27 02:12) [17]Пока напарников не имеется, пока я остановился на варианте Ega23
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.042 c