Вопрос № 93845: Господа помогите советом.
Есть:
1. RxRichEdit1 (в нем уже есть некая информация)
2. MemoryStream1
Задача: добавить из MemoryStream1 в конец или начало RxRichEdit1.
RxRichEdit1.Lines.LoadFromStream(MemoryStream1) заменяет данные<b...Вопрос № 93852: Здравствуйте уважаемые эксперты, мне нужно разработать сетевую базу данных с помощью InterBase. Пришлите, пожалуйста, инструкцию по ее созданию на русском языке, заранее всем спасибо....Вопрос № 93856: Добрый день, господа !
Как сделать вертикальную прокрутку синхронной в обоих DbGrid.
Заранее спасибо.
...Вопрос № 93920: Уважаемые эксперты, подскажите пожалуйста как стандартными средствами GDI создать карту? Мы создаем карту города. Нарисовать смежем. Как сделать чтоб это все перетаскивалось мышью. Может у кого-то есть маленький пример такого приложения. Вобщем станд...Вопрос № 93944: Здайствуйте уважаемые эксперты!
Вот опять пришел с вопросом. Суть его вот в чем:
Имею во такой компанент JvSimScope1 - действие ето заключается в том чтобы отображать линию(ии) на расчерченной сетке при постоянном обнавлении(скорее всего похо...
Вопрос № 93.845
Господа помогите советом.
Есть:
1. RxRichEdit1 (в нем уже есть некая информация)
2. MemoryStream1
Задача: добавить из MemoryStream1 в конец или начало RxRichEdit1.
RxRichEdit1.Lines.LoadFromStream(MemoryStream1) заменяет данные
нашел CopyFrom(Source: TStream; Count: Longint): Longint
еще не пробовал, но может как-то так извернуться для добавления в конец:
RxRichEdit1.Lines.SaveToStream(MemoryStream2)
затем через MemoryStream2.CopyFrom(MemoryStream1; 0)
и опять RxRichEdit1.Lines.LoadFromStream(MemoryStream2)
Всем спасибо.
Отправлен: 04.07.2007, 02:52
Вопрос задал: Symson (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Louken
Здравствуйте, Symson!
Чтобы добавить в конец, смотри процедуру в приложении...
Использовать ее можно так:
PasteFromStream(RxRichEdit1.Lines, MemoryStream1);
Такой способ работает, только если, свойство RxRichEdit1.StreamFormat равно sfPlainText.
Приложение:
Ответ отправил: Louken (статус: 10-ый класс)
Ответ отправлен: 04.07.2007, 18:13 Оценка за ответ: 5
Отвечает: monah
Здравствуйте, Symson!
Попробуйте так:
var
s, s1:string;
i:integer;
begin
setlen(s, RxRichEdit1.size); // устанавливаем длинну буфера
RxRichEdit1.Read(s[1], RxRichEdit1.size); // Читаем в буфер
s1:=RxRichEdit1.text+s; // Обьеденяем данные
RxRichEdit1.text:=s1; // Записываем.
end;
--------- festina lente
Ответ отправил: monah (статус: Студент)
Ответ отправлен: 04.07.2007, 21:41 Оценка за ответ: 2 Комментарий оценки: MemoryStream???
Вопрос № 93.852
Здравствуйте уважаемые эксперты, мне нужно разработать сетевую базу данных с помощью InterBase. Пришлите, пожалуйста, инструкцию по ее созданию на русском языке, заранее всем спасибо.
Отвечает: Архангельский Андрей Германович
Здравствуйте, Киселев Сергей Николаевич!
Есть хорошая книга Хелен Борри "Firebird, Рководство разработчика" в ней все описано"
В прилагаемом файле SQL-скрипт для создания БД из моей книги "Древовидные структуры в БД"
Прикреплённый файл: Загрузить >> Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа. --------- Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Отвечает: Sandy
Здравствуйте, Elenkin Valeriy!
Не очень понятно зачем это надо и с какой стати в 2х DbGrid будет одинаковое кол-во записей. В общем случае, на основании логики Вашей синхронизации используйте на обоих датасетах, связаных с гридами, методы: MoveBy, Next, Prior, Locate.
Ответ отправил: Sandy (статус: 7-ой класс)
Ответ отправлен: 04.07.2007, 09:41 Оценка за ответ: 4 Комментарий оценки: ... согласен вопрос не доработан, буду корректнее ..., спасибо.
Вопрос № 93.920
Уважаемые эксперты, подскажите пожалуйста как стандартными средствами GDI создать карту? Мы создаем карту города. Нарисовать смежем. Как сделать чтоб это все перетаскивалось мышью. Может у кого-то есть маленький пример такого приложения. Вобщем стандартные функуци реализовать.
Скачивала компонент Datamap, но он у меня отказался устанавливаться.
Любые советы будут очень дороги мне - новичку в этом деле.
Отвечает: Bochvarov NikB
Здравствуйте, Сумарокова Наталья!
Картьи бьивают два вида: растерние и векторние, а различия болшие.
Так, что сперва надо вьибрат техналогию.
А что бьи некоторой визуалной обект (или "все") перетаскивалось мышью - надо обрабатьивать: OnMouse Events.
Ответ отправил: Bochvarov NikB (статус: Студент)
Ответ отправлен: 04.07.2007, 17:18
Отвечает: PGM
Здравствуйте, Сумарокова Наталья!
Основные шаги, если делать самому:
1. Делаем наследника от TCustomPanel - TViewPanel = class(TCustomPanel). И в нем свойство Origin : TPoint, в котором хранится смещение от точки (0,0). Перегружаем Paint и в нем отрисовываем карту с нужного смещения.
2. В TViewPanel.MouseDown добавляем
FState := vs_Scroll; // признак что началось "таскание"
FLastMouse := Point(X,Y); // начальная точка "таскания"
Screen.Cursor := crSizeAll; // вид курсора
3. В TViewPanel.MouseMove
if FState = vs_Scroll then begin
dx := X-FLastMouse.X;
dy := Y-FLastMouse.Y;
FLastMouse := Point(X,Y);
FOrigin := Point(FOrigin.X - dx, FOrigin.Y - dy);
Invalidate;
end;
4. И наконец TViewPanel.MouseUp
FState := vs_None; // возвращаем статус в не "таскание"
Screen.Cursor := crDefault; // возвращаем курсор
P.S. В вышеприведенной схеме оставлены за скобками вопросы производительности (мигания при перетаскивании). В свое время когда делал через GDI пришлось вместо полного Paint(Invalidate) использовать ScrollDC с подрисовкой "кусочков". Через DirectX все оказалось попроще, особенно если карта влезает в оффскрин поверхность. Но это уже другой вопрос :).
Ответ отправил: PGM (статус: 8-ой класс)
Ответ отправлен: 04.07.2007, 21:00
Вопрос № 93.944
Здайствуйте уважаемые эксперты!
Вот опять пришел с вопросом. Суть его вот в чем:
Имею во такой компанент JvSimScope1 - действие ето заключается в том чтобы отображать линию(ии) на расчерченной сетке при постоянном обнавлении(скорее всего похож на коордиаграму).
В его событиях есть функция OnUpDate (как я понял выполнять какое то действие при обнавлении графика). По мимо этого компанента на форме лежит компонент TPing.
Вообщем смысл всего этого, что бы на графике отображался TTL.
В событии OnUpdate(JvSimScope1) пишу :
var
p: integer;
begin
p:= 50+ping1.Reply.RTT; --- (что бы смотрелось по середине графика прибавляю 50)
JvSimScope1.Lines.Lines[0].Position:=p;
end;
НО, удивительный эффект =), да значении TTL поподает на график, но только самое его первое значение, т.е. при обновлении графика дальнейшее значение TTL не прописывается в позицию линии(а только изночальное). Пробывал зделать цикл(тоесть пока кнопка впала, выводить значение TTL на график)-- привело к намертву зависанию всего ПО на компе. У кого есть какие идеи, как это реализовать по человечески? Если все таки через цикл, то можно наглядный пример его.
Отправлен: 04.07.2007, 20:49
Вопрос задал: Joni_ (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Sandy
Здравствуйте, Joni_!
Не получается ли у Вас зацикливание OnUpDate? Вы его вызываете, присваиваете, вероятно, его свойству новое значение - автоматом вызывается OnUpDate вновь.
Если я чего не понял киньте больше исходников в форум.
Ответ отправил: Sandy (статус: 7-ой класс)
Ответ отправлен: 05.07.2007, 12:13