Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi 2

Автор: EvSeKo
Дата сообщения: 04.05.2006 17:39
OdesitVadim
Спасибо за адрес и подробное объяснение.

Если я не надоел, то у меня есть ещё вопрос. Мне предлагали распараллелить вычисления на два компа, стоит ли этим заниматься? У меня опыта не очень много, но мне кажется, что выигрыша в скорости не будет из-за передачи данных с сервера на клиент и обратно. Данные представлены в виде матрицы, пока гоняю тесты на небольших матрицах, максимум 40х40.
Автор: SZap
Дата сообщения: 04.05.2006 18:13
SergeBS
И на этом спасибо...
Прийдеться от Halcyona отказаться...
Автор: OdesitVadim
Дата сообщения: 04.05.2006 19:29
EvSeKo
А вот правильное распаралеливание на несколько машин - это уже интересней. Здесь главное - наличие сервера, который формирует маленькие задания и оттаёт клиентам. Те считают и возвращают результат. Почему "маленькие"? А если клиент прегрузился или подглючил ничайно? так потеряется только часть работы.
Несколько год назад один знакомый написал оригинальный графич. движок. Он использовал распределённыйе вычисления (погугли по этому выражению - найдёш много интересного). 10 машин просчитывает картинку и логику, а на одной - играеш. Машины по пол гигагерца, но графика была класная и не тормозило. Правда временами выпадали квадратики на картинке - это один с клиентов подглючивал.
Если хочеш более подробно обсудить проблему - то уточняй, что именно считают твои вычисления - мож это обычный брут паролей? Мож в асю постучать.
Автор: Zver1992
Дата сообщения: 04.05.2006 21:15
Есть компонент TTimer. Как сделать, чтоб его значение Interval было равно какой нибудь переменной?
Автор: EVD
Дата сообщения: 04.05.2006 21:32
Zver1992

Цитата:
Есть компонент TTimer. Как сделать, чтоб его значение Interval было равно какой нибудь переменной?


Timer1.Interval := переменная

Автор: reenoip
Дата сообщения: 05.05.2006 00:54
Даже не знаю, с чего начать...

Можно ли как-нибудь узнать, подсоединён ли к компьютеру сканер (+ проверить его на состояние вкл/выкл)? (USB, LPT, и т.д.).
Автор: ShIvADeSt
Дата сообщения: 05.05.2006 01:20
reenoip

Цитата:
Даже не знаю, с чего начать...

Можно ли как-нибудь узнать, подсоединён ли к компьютеру сканер (+ проверить его на состояние вкл/выкл)? (USB, LPT, и т.д.).

http://forum.ru-board.com/forum.cgi?action=filter&forum=33&filterby=topictitle&word=%F1%EA%E0%ED%E5%F0
там посмотри, что тебе более подходит, и там продолжай ибо тема слишком серьезная.
Автор: EvSeKo
Дата сообщения: 05.05.2006 05:06
OdesitVadim
Численно решается дифференциальное уравнение(Гельмгольца), как всегда на область на которой решаем наносим сетку, получаем СЛАУ, которую решаю модифицированным методом минимальных невязок. Пробовал делать распределение с помощью сокетов(половину считает сервер, другую клиент), замучился с синхронизацией, до сих пор не могу понять почему происходит разрыв. Каждый раз в разное время происходит. Иной раз несколько минут считает, а иногда сразу ошибку выдаёт.
Автор: SergeBS
Дата сообщения: 05.05.2006 07:54
SZap
Хозяин-барин . Я только повторю: из индекса string поле - выкинуть, или длину его ограничить. Или фильтр попробовать. Если пример о счете подобен нынешней задаче - фильтр очень даже неплохо сработает.
Автор: Vimana2
Дата сообщения: 05.05.2006 08:38
А как получить предложение в RichEdit на котором стоит курсор???
Автор: SZap
Дата сообщения: 05.05.2006 10:08
SergeBS

Цитата:
Если пример о счете подобен нынешней задаче - фильтр очень даже неплохо сработает.

Ну, как вариант можно...
Спасибо
Автор: RostY
Дата сообщения: 05.05.2006 10:12
Vimana2
получаешь позицию курсора в ричедите:
что-то типа

Цитата:

var
iX,iY : Integer;
TheRichEdit : TRichEdit;
begin
iX := 0; iY := 0;
TheRichEdit := TRichEdit(Sender);
iY := SendMessage(TheRichEdit.Handle, EM_LINEFROMCHAR, TheRichEdit.SelStart, 0);
iX := TheRichEdit.SelStart - SendMessage(TheRichEdit.Handle, EM_LINEINDEX, iY, 0);

потом двигаешься посимвольно влево до ['.','!','?'] или начала абзаца и вправо и получаешь предложение

Добавлено:
====
Подскажите, как отобразить из ресурса анимационный курсор в Windows 9x.
делаю что-то такое:
var hCur: HCURSOR;
hCur:=LoadCursor(HInstance, Pchar('MYCURSOR'));
Screen.Cursors[1] := hCur;
Z1.Cursor:=1;

в Win 2000, XP работает, а в 98 неа. Что делать ?
Автор: FRALX
Дата сообщения: 05.05.2006 10:45
RostY
Vimana2
RichEdit1.CaretPos.x(iX),RichEdit1.CaretPos.y(iY)
Вернет тоже самое, IMHO так проще
Автор: OdesitVadim
Дата сообщения: 05.05.2006 11:00
EvSeKo

Цитата:
Численно решается дифференциальное уравнение(Гельмгольца),

Таким не увлекаюсь.

Цитата:
сокетов

Свой протокол разрабатывал? Мне кажеться есть смысл взять компоненты Indy, а конкретней THttpServer и THttpClient. На основании их построить программу. Канечно http протокол будет немного медленен, но достаточно надёжен (в плане розрывов). Я понимаю, что ты поддерживал соединение на протяжении всей сесии?
Потом, когда отладишь работу с распределением, можно будет заняться разработкой быстрого протокола.
Автор: rs
Дата сообщения: 05.05.2006 14:11
есть программа, использующая компонент TWebBrowser

время от времени при просмотре страниц в оффлайне (из кеша HandyCache) этим браузером возниакают непонятно откуда появляющиеся всплывающие окна с сообщением:

"Загрузка файла - предупреждение системы безопасности
Сохранить этот файл? ..."

на самом деле сохранять ничего не нужно, т.к. это обычный html-файл (к примеру страница этого топика)

если после этого всплывающего окна сделать обновление страницы в twebbrowser - всё показывается нормально без дурацих сообщений

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

просмотр этой же страниц в MS IE проходит сразу нормально (правда вверху msie появляется жетая строка на тему безопасности)

чтобы избавиться от этого - пробовал понизить уровень безопасности в настройках ie - не помогает

--

вопрос - можно ли в моей программе поймать факт появления окна ссобщением и прибить это окно (чтоб не появлялос) - после чего сделать программный рефреш?
Автор: ArtemiyUO
Дата сообщения: 05.05.2006 14:27
Есть такая задача сделать глобальный SpellCheck во всей программе. Знаю что существуют компоненты для проверки, но проблема именно в том что это компоненты. Мне же необходимо во всех тектовых полях иметь проверку.
Есть идея, сделать глобальный хук в приложении на отлов изменения любого текстового значения (если это возможно), потом чекать с помощью стороннего чекера и выводить свою формочку с вариантами исправления и т.д, а потом "как то" послать измененый текст.
Такая вот не тривиальная задача. Есть мысли у кого , может быть опыт?
Автор: dyr farot
Дата сообщения: 05.05.2006 17:11
сам такую функциональность прикрути -- сделай наследника от TEdit' а (или custom' а) и в его OnChange' е и проверяй текст. там же и форму показывать можно.
в чем проблема?..
Автор: Barakuda7
Дата сообщения: 05.05.2006 18:44
PAnsiChar (Edit1.Text) и PChar (Edit1.Text) пробовал, не получается.
Тогда напишите, как скопировать файл.
Автор: ArtemiyUO
Дата сообщения: 05.05.2006 19:03
проблема в том что нужно везде. В схгриди, схконтролах.
Автор: nekra
Дата сообщения: 05.05.2006 20:00
ArtemiyUO

Всеравно прийдется проверять только определенные компоненты.

Можно попытаться сделать, класс, который, например, для всех компонент, которые существуют на формочке, для примера пусть будет TCustomEdit, меняет OnChange на свой внутренний, выполняющий проверку, и вызывающий оригинальный OnChange.

Класс можно унаследовать от TComponent, и создавать его на FormCreate. В конструкторе класса и реализовать подмену OnChange.

Плюсь данного подхода, не надо переписывать(создавать) компоненты, можно просто сделать проверку к любому типу контролла.

Минус: Необходимо хранить массив ссылок на оригинальные OnChange.



Автор: EVD
Дата сообщения: 05.05.2006 21:10
Barakuda7

Все копируется, сам проверял

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Old,New:string;
begin
Old:='c:\1.txt';
New:='c:\2.txt';
CopyFile(PChar(Old),PChar(New),false);
end;
Автор: reenoip
Дата сообщения: 06.05.2006 00:17
Вопрос снят.
Автор: Sergey1970
Дата сообщения: 06.05.2006 18:43
Посоветуйте, плз, максимально быструю реализацию поиска файлов по маске по всему дереву каталогов, начиная с указанного.
Спасибо.
Автор: SERGE_BLIZNUK
Дата сообщения: 06.05.2006 21:47
Sergey1970

Цитата:
максимально быструю реализацию поиска файлов по маске по всему дереву каталогов
я так думаю, что быстрее чем ручками через FindFirst, FindNext и засунуть это всё в рекурсивную функцию - не получится. Если нужна помощь (пример могу кинуть). Опять таки, файловая система какая - если любая - точно руками делайте. Может быть для NTFS, HPFS есть специальные более эффективные команды.

Автор: Sergey1970
Дата сообщения: 06.05.2006 21:53
SERGE_BLIZNUK
FindFirst, FindNext - это все понятно. Надеялся на более «извращенные» способы или библиотеки :о) - с большей производительностью. Спасибо.
Автор: SERGE_BLIZNUK
Дата сообщения: 06.05.2006 22:23
Ага. Так вы всё сами знаете ;-)))

Цитата:
Надеялся на более «извращенные» способы или библиотеки

я думаю, что кроме специальных запросов к определённой файловой структуре (о чём я упоминал) все остальные «извращенные» способы будут просто обёрткой над FindFirst/Next... Причём дай Бог, если грамотной и эффективной обёрткой...
Это моё личное ИМХО, может быть, более знающие ребята меня поправят...
Автор: reenoip
Дата сообщения: 07.05.2006 10:51
Вопрос снят, сам разобрался.
Автор: JonyBes
Дата сообщения: 07.05.2006 20:33
С созданием таблиц в interbase вроде разобрался, возник следубщий вопрос:
Люди советуют начинать учится на .NET, в связи с этим несколько вопросов.
Существуют технологии ADO.NET, BDE.NET, dbgo.net, dbexpress.net - разные принципы.
В чем работать?
Автор: pit23
Дата сообщения: 07.05.2006 21:47
Здраствуйте. Возникла проблема при разработке программы. При работе с удаленной базой данных ОРАКЛ связь иногда пропадает(ненадолго, на несколько секунд) и запросы ADOQUERY перестают работать, даже если связь восстанавливается. Необходимо перезапускать программу.

Вопрос: как можно программно восстановить связь с базой данных, не перезапуская программу.
P.S. используюю Delphi 6. Заранее огромное спасибо за помощь.
Автор: AlxMonster
Дата сообщения: 07.05.2006 23:15
JonyBes

Цитата:
Люди советуют начинать учится на .NET

Если хочешь научится работать в .Net, то лучше это делать с помощью языка C#, а не delphi.net.

Цитата:
Существуют технологии ADO.NET, BDE.NET, dbgo.net, dbexpress.net - разные принципы.
В чем работать?

C# + ADO.NET

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Событие STFilter(DBGridEh) ???


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.