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

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


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

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

Выпуск № 419
от 20.03.2006, 21:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 282, Экспертов: 70
В номере:Вопросов: 5, Ответов: 15


Вопрос № 37583: нАЗЪЯМХРЕ ОНФЮКСИЯРЮ ЙЮЙ ОПНЦПЮЛЛМН НРЙПШРЭ НДХМ ПЮГДЕК Б MainMenu Х СЯРЮМНБХРЭ ЙСПЯНП МЮ ЙЮЙНИ МХАСДЭ ОСМЙР Б МЕЛ....
Вопрос № 37597: Здравствуйте Уважаемые Эксперты! Как можно двигать границу соединения компонентов? Например ListBox и RichEdit одному компоненту задал Algin = Left другому Client вот как сделать, чтобы во время запуска программы можно было указателем мыши с...
Вопрос № 37601: Помогите со сниффером для COM-портов, нужен для тестирования моей программы. ...
Вопрос № 37608: Help ME !!! Кто подскажет вчём ошибка !? sr:Tsearchrec; и findnext(sr)<>0; FindClose(sr); я поставил чтобы закрыть until если есть более лёгкий способ то скажите ! ...
Вопрос № 37609: Здраствуйте уважаемые эксперты! У меня есть приложение которое работает и с почтой по SMTP и с буффером, и выбрасывает разные окошки с ошибками такими как: Conection time out, Host noy found, Cannot open Clipboard... можно ли как нибуть зделать ч...

Вопрос № 37.583
нАЗЪЯМХРЕ ОНФЮКСИЯРЮ ЙЮЙ ОПНЦПЮЛЛМН НРЙПШРЭ НДХМ ПЮГДЕК Б MainMenu Х СЯРЮМНБХРЭ ЙСПЯНП МЮ ЙЮЙНИ МХАСДЭ ОСМЙР Б МЕЛ.
Отправлен: 15.03.2006, 16:01
Вопрос задал: source (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Полховский Александр Владимирович
Здравствуйте, source!
Либо симульровать нажатие нужных клавиш на клавиатуре, либо искусственно подвести мышь и нажать нужные кнопки.
Мышью управлять - mouse.cursorpos : TPoint, либо
windows.mouse_event(2,0,0,0,0);
windows.mouse_event(4,0,0,0,0);
Клавиатурой -
windows.keybd_event(18,18,0,0);
windows.keybd_event(69,69,0,0);
windows.keybd_event(69,69,2,0);
windows.keybd_event(18,18,2,0);
C параметрами поэкспериментируйте, найдёте нужные.
---------
Спасём нашу хрупкую планету !
Ответ отправил: Полховский Александр Владимирович (статус: Практикант)
Ответ отправлен: 15.03.2006, 21:59

Отвечает: Leshiy2006
Здравствуйте, source!
Не понял текст вопроса, у вас что-то с кодировкой
Ответ отправил: Leshiy2006 (статус: 5-ый класс)
Ответ отправлен: 15.03.2006, 23:26

Отвечает: Лучников Юрий Владимирович
Здравствуйте, source!

В прикрепленном файле находится исходник примера программного вызова меню.
Среда: Delphi 7.

Успехов;)

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.

Ответ отправил: Лучников Юрий Владимирович (статус: Практикант)
Ответ отправлен: 17.03.2006, 15:35
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое - выручил


Вопрос № 37.597
Здравствуйте Уважаемые Эксперты! Как можно двигать границу соединения компонентов? Например ListBox и RichEdit
одному компоненту задал Algin = Left другому Client вот как сделать, чтобы во время запуска программы можно было
указателем мыши сдвигать границу слияния компонентов как вправо так и влево. Заранее спасибо.
Отправлен: 15.03.2006, 18:48
Вопрос задал: Шишкин М.А. (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Шишкин М.А.!
Поместите на форму компонент TSplitter (вкладка Additional). Помещайте нужные компонент и устанавливайте для них Align (alLeft и alClient например). После того, как установите Align для левого компонента, возьмите сплиттер и перетащите его так, чтобы он оказался правее левого компонента. Затем установите Align для второго компонента. Теперь сплиттер будет "перегородкой", которую можно двигать.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 15.03.2006, 19:01
Оценка за ответ: 4

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Шишкин М.А.!
Здравствуйте, Шишкин М.А.!
Для этого нужно использовать компонент TSplitter. Положите его на форму между компонентами, укажите ему выравнивание Align = alLeft, у каждого из разделяемых компонентов установите свойство Constraints.MinWidth - если этого не сделать, то при достижении сплиттера противоположного края компонента, компонент скроется, и вернуть его обратно можно только программно установив его свойства Width и(или) Left. Свойство Constraints нет в ранних версиях Delphi (в 4 его точно нет)
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 1-ый класс)
Ответ отправлен: 15.03.2006, 19:02
Оценка за ответ: 5

Отвечает: Ataman N. N.
Здравствуйте, Шишкин М.А.!
Делаете так:
Помещаете на форму ListBox, выравнивате по Left;
Из вкладки Additional выставляете на форму компонент Splitter;
Помещаете на форму RichEdit, выравниваете его по Client.
Все!
Ответ отправил: Ataman N. N. (статус: 10-ый класс)
Ответ отправлен: 15.03.2006, 19:30
Оценка за ответ: 4

Отвечает: Leshiy2006
Здравствуйте, Шишкин М.А.! В приложении один из вариантов

Приложение:

Ответ отправил: Leshiy2006 (статус: 5-ый класс)
Ответ отправлен: 15.03.2006, 23:56

Отвечает: Николай Б.
Здравствуйте, Шишкин М.А.!
Для этого можно использовать компонент TSplitter со вкладки Additional
Ответ отправил: Николай Б. (статус: 2-ой класс)
Ответ отправлен: 16.03.2006, 09:56


Вопрос № 37.601
Помогите со сниффером для COM-портов, нужен для тестирования моей программы.
Отправлен: 15.03.2006, 19:29
Вопрос задал: Злоумышленник (статус: 4-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: akaDemik
Здравствуйте, Злоумышленник!
Самый качественный снифер который мне попадался есть на http://www.sysinternals.com называется PortMon.
Еще один аналог называется AccessPort, на счет сайта не уверен но кажется www.sudt.com Хотя работает не так уж стабильно. Для AccessPort могу прислать мой русификатор. Если будет нужно, пиши в личку.
Ответ отправил: akaDemik (статус: 2-ой класс)
Ответ отправлен: 16.03.2006, 10:25
Оценка за ответ: 5
Комментарий оценки:
Спасибо за помощь!


Вопрос № 37.608
Help ME !!!
Кто подскажет вчём ошибка !?
sr:Tsearchrec;
и
findnext(sr)<>0;
FindClose(sr);
я поставил чтобы закрыть until
если есть более лёгкий способ то скажите !

Приложение:

Отправлен: 15.03.2006, 20:14
Вопрос задал: Tamashev Denis M (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Полховский Александр Владимирович
Здравствуйте, Tamashev Denis M!
Я!
Эта функция (findnext) совсем не за то отвечает. Вам нужна функция проверки положения так называемой "каретки" в открытом файле. Вы ведь именно на конце файла хотите всё прервать ? Тогда eof(f1)или eof(f2). Возвращает True, если каретка в конце файла. TSearchrec Вам абсолютно не нужен для этой задачи.
---------
Спасём нашу хрупкую планету !
Ответ отправил: Полховский Александр Владимирович (статус: Практикант)
Ответ отправлен: 15.03.2006, 23:08

Отвечает: sir henry
Здравствуйте, Tamashev Denis M!
Функция FindNext() ПРОДОЛЖАЕТ поиск файлов по заданному шаблону в какталоге. Применение ее в Вашем случае грубейшая ошибка. Уберите ее.
Насчет легкого способа. Способа чего? Если Вы потрудитесь описать задачу, которую Вы хотите решить, тогда можно будет Вам помочь. А пока Ваш вопрос полностью лишен смысла.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 16.03.2006, 05:39
Оценка за ответ: 2
Комментарий оценки:
Кто подскажет вчём ошибка !?
sr:Tsearchrec;
и
findnext(sr)<>0;
FindClose(sr);
я поставил чтобы закрыть until
если есть более лёгкий способ то скажите !

Отвечает: Николай Б.
Здравствуйте, Tamashev Denis M!
Сначала надо делать FindFirst!!! А только потом FindNext.

Пример: (поиск файлов в папке и подпапках)

function BestFind(directory,extension:string):TStrings;
var Rec : TSearchRec;
res : Integer; //find result
dir,ext : string;
Begin
Result := TStrings.Create;
dir := directory;
ext := extension;
res := FindFirst(dir + ext,faAnyFile,Rec);//find first file
res := FindNext(Rec);//find next file
While res = 0 do
Begin
if (Rec.Attr = faDirectory) and
((Rec.Name = '.')or(Rec.Name='..')) then
Begin
Res := FindNext(Rec);
Continue;
End;
if Rec.Attr = faDirectory then // directory found
// find files in it
Begin
BestFind(dir + Rec.Name + '',ext);
res := FindNext(Rec);//find next file
Continue;
End;
Result.Add(Rec.Name);
Res := FindNext(Rec);//find next file
End;
// FindClose(Rec);
End;
Ответ отправил: Николай Б. (статус: 2-ой класс)
Ответ отправлен: 16.03.2006, 10:52
Оценка за ответ: 4
Комментарий оценки:
Ой блин знаю я как файлы искать вы лучше скажите как читать строки из двух файлов и сравнивать их !


Вопрос № 37.609
Здраствуйте уважаемые эксперты!
У меня есть приложение которое работает и с почтой по SMTP и с буффером, и выбрасывает разные окошки с ошибками такими как: Conection time out, Host noy found, Cannot open Clipboard... можно ли как нибуть зделать чтобы приложение воoбще не выбрасывало никаких окошек с ошибками, а просто игнорировало бы их и работало дальше, или как можно обработать эти ошибки чтобы они не влияли на работу приложения?
Заранее спасибо.
Отправлен: 15.03.2006, 20:26
Вопрос задал: Станислав (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Станислав!
Да, можно. Вот так например:

try
{здесь действия, которые могут вызвать ошибки}
except
Abort;
end;


При этом, поместив в этот блок сразу много строк, можно получить невыполнение десятков строк кода, что не есть хорошо. Следует помещать в try..except только те строки, которые реально дают ошибки, а не строки вроде s:='123';
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 15.03.2006, 21:00

Отвечает: sir henry
Здравствуйте, Станислав!
Используйте Try..Except и Try..Finally для обработки исключительных ситуаций, если конечно Ваши окошки с сообщениями являются следствием исключительных ситуаций.
А вообще было бы неплохо написать, какие компоненты или функции Вы используете для работы с почтой. Если это функции API, то они ВСЕГДА возвращают какой-либо результат по выполнению или невыполнению. Если это какие-то компоненты, то нужно смотреть описание компонентов.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 16.03.2006, 05:44
Оценка за ответ: 4

Отвечает: akaDemik
Здравствуйте, Станислав!
Можно установить обработчик исключений для всего приложения. Тогда любой необработанный Exception приведет к вызову этого обработчика, а приложение не выдаст никаких сообщений и не завршитработу.
Только будте осторожней. Это черевато пропуском больших куксков кода и в связи с этим возможно неожиданным поведением программы после исключений.
См. приложение:

Приложение:

Ответ отправил: akaDemik (статус: 2-ой класс)
Ответ отправлен: 16.03.2006, 10:09


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

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

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

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

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


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


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

В избранное