Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 725
от 02.02.2007, 19:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 439, Экспертов: 77
В номере:Вопросов: 4, Ответов: 11


Вопрос № 72985: Здраствуйте Уважаемые эксперты, Помогите мне решить простой вопрос, как можно сосчитать сколько символов введено в поле Мемо, желательно незаписуя содержимое Мемо в какой нибуть фаил? Заранее Спасибо. С уважением, Станислав....
Вопрос № 73015: подскажите как можно перехватить событие когда прога вылетает из процесов...
Вопрос № 73019: Здраствуйте!!! Подскажите пожалуйста, СРОЧНО, почему и как решить следующую задачу: Делаю запрос к БД(FireBird/InterBase) компонентой IBQuery на отображение ВСЕХ записей таблицы клиентов. После мне их нужно перенести в ComboBox. Если к этом...
Вопрос № 73022: Здравствуйте, уважаемые эксперты! Имеется Word-овский файл. В этом файле имеются написи: Статья 1, Статья 2 и т. д. до 400. Как мне сделать так, чтобы программа читала после этой записи (Статья 1) и вносила, скажем, в Memo1? Буду благодарен!...

Вопрос № 72.985
Здраствуйте Уважаемые эксперты,
Помогите мне решить простой вопрос, как можно сосчитать сколько символов введено в поле Мемо, желательно незаписуя содержимое Мемо в какой нибуть фаил?
Заранее Спасибо.
С уважением, Станислав.
Отправлен: 28.01.2007, 12:11
Вопрос задал: Станислав (статус: 1-ый класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Nick_K
Здравствуйте, Станислав!
{Все просто:}
var i:integer;
begin
i:=length(memo1.text);
end;
Ответ отправил: Nick_K (статус: 3-ий класс)
Ответ отправлен: 28.01.2007, 12:18
Оценка за ответ: 5
Комментарий оценки:
Спасибо :)

Отвечает: Антонов Никита Вячеславович
Здравствуйте, Станислав!
Делается это очень просто. Если в кратце то что то вроде этого:
len := Length(Form1.Memo1.Text);
---------
Прежде чем идти к цели, подумай, стоит ли она того
Ответ отправил: Антонов Никита Вячеславович (статус: 2-ой класс)
Ответ отправлен: 28.01.2007, 12:19
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: Базанов Иван Александрович
Здравствуйте, Станислав!
function MemoCout(mmo : TMemo):Integer;
begin
if mmo.Lines.Count > 1 then
Result := Lenth(mmo.Text) - mmo.Lines.Count // Учитываем, что символы перевода строки считаются по 2 - "CR" "LF"
else
Result := Lenth(mmo.Text);
end;
---------
Программист ошибается дважды: первый раз при рождении, второй при выборе профессии
Ответ отправил: Базанов Иван Александрович (статус: 2-ой класс)
Ответ отправлен: 28.01.2007, 12:29
Оценка за ответ: 5

Отвечает: Bouffon
Здравствуйте, Станислав!
у мемо есть строки ты можешь в цикле виделять каждую строку и методом length(s) где s - некая строка определить ее размер, то есть колтчество символов в ней, а потом суммируй эти д анные
Ответ отправил: Bouffon (статус: 2-ой класс)
Ответ отправлен: 28.01.2007, 20:37

Отвечает: Volhit
Length(Memo1.Lines.Text) вернет количество символов в мемо.
Ответ отправил: Volhit (статус: 3-ий класс)
Ответ отправлен: 29.01.2007, 16:30


Вопрос № 73.015
подскажите как можно перехватить событие когда прога вылетает из процесов
Отправлен: 28.01.2007, 15:48
Вопрос задал: Golo87 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Gladiator
Здравствуйте, Golo87!
Рекомендую прочитать про возможности WMI, например, по ветке win32_process. В интернете об этом много информации.
Ответ отправил: Gladiator (статус: 7-ой класс)
Ответ отправлен: 29.01.2007, 08:19

Отвечает: Nick_K
Здравствуйте, Golo87!
Если программа вылетает, вседствие какого-то исключения, можно попробовать обработать это исключение.
Если же програма прибивается, как процесс,другим приложением, то здесь, насколько мне известно, никакие события не обрабатываются. Пример: если в Диспетчере задач Windows завершить процесс какого-либо приложения, то данное приложение не успеет обработать ни одно событие.
Ответ отправил: Nick_K (статус: 3-ий класс)
Ответ отправлен: 29.01.2007, 11:39


Вопрос № 73.019
Здраствуйте!!!
Подскажите пожалуйста, СРОЧНО, почему и как решить следующую задачу:
Делаю запрос к БД(FireBird/InterBase) компонентой IBQuery на отображение ВСЕХ записей таблицы клиентов. После мне их нужно перенести в ComboBox. Если к этому запросу(IBQuery) привязанна таблица(DBGrid) то всё работет(RecordCount=3). Но если таблицу убрать то заносится только первая запись т.к. свойство RecordCount=1, если привязать любой другой компонент с закладки DataControls или DBGrig.Visible=False то ничего не меняется(RecordCount=1).
Что мне делать???

Приложение:

Отправлен: 28.01.2007, 16:20
Вопрос задал: chikanok (статус: 3-ий класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Андрей / Magistr
Здравствуйте, chikanok!

Если не использовать RecordCount, то см. исправления в приложении.

RecordCount не будет равно 1 после qclientlist.FetchAll;

Приложение:

Ответ отправил: Андрей / Magistr (статус: 3-ий класс)
Ответ отправлен: 28.01.2007, 16:29

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, chikanok!

Вообще-то в справке написано, что свойство RecordCount неинформативно, пока все данные запроса не переданы на клиент... Поэтому для загрузки данных из запроса стоит использовать контрукцию:

while not qclientlist.Eof do
begin
cbusr.Items.Add(qclientlist.fieldbyname('CLI_NAME').AsString);
qclientlist.Next;
end;
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 7-ой класс)
Ответ отправлен: 29.01.2007, 10:19

Отвечает: Volhit
Здравствуйте, chikanok!

RecordCount возвращает количество реально извлеченных строк в текущем "такте". Если хочешь, чтобы RecordCount возвращал реальное количество строк в таблице, можно сделать, например, так:

//...
qclientlist.First();
qclientlist.Last();
qclientlist.First();
//...
for i:=1 to qclientlist.RecordCount do begin
cbusr.Items.Add(qclientlist.fieldbyname('CLI_NAME').AsString);
qclientlist.Next;
// ...

Но!!! Это, вообще говоря, порочная практика. Гораздо лучше использовать свойство Eof:
qclientlist.First();
while not qclientlist.Eof do
begin
cbusr.Items.Add(qclientlist.fieldbyname('CLI_NAME').AsString);
qclientlist.Next;
end;

Это избавит вас, как и от использование лишней переменной, так и от двойной нагрузки на sql-сервер
Ответ отправил: Volhit (статус: 3-ий класс)
Ответ отправлен: 29.01.2007, 15:35


Вопрос № 73.022
Здравствуйте, уважаемые эксперты! Имеется Word-овский файл. В этом файле имеются написи: Статья 1, Статья 2 и т. д. до 400. Как мне сделать так, чтобы программа читала после этой записи (Статья 1) и вносила, скажем, в Memo1?
Буду благодарен!
Отправлен: 28.01.2007, 16:54
Вопрос задал: LogrusEx (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Argyn.Durmagambetov
Здравствуйте, LogrusEx!

попробуйте ниже приведенный код

что нужно на форму ложить там ясно вроде

удачи

Приложение:

---------
Не говори мне СДЕЛАЙ и я не скажу куда тебе идти...спроси "Как сделать" и получишь ответ

Ответ отправил: Argyn.Durmagambetov (статус: 2-ой класс)
Ответ отправлен: 29.01.2007, 11:17
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо! Даже не ожидал, что такой большой ресурс будет!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.43 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное