Вопрос № 30994: Здравствуйте, уважаемые эксперты. Я пытаюсь создать сервис. У меня возникла проблема. Подскажите, пожалуйста
почему код (приведен ниже) нехочет компилироватся, DELPHI пишет :
[Error] Unit1.pas(42): Undeclared identifier: 'Screen'
[Error] ...Вопрос № 31001: Нужно, чтобы прога при запуске пыталась получить почту (использую nmpop3), если возникает ошибка (нет соединения с интернетом, допустим), то прога должна sleep(10000) и снова pop3.connect. Вопрос: как сделать, чтобы при ошибке соединения прога не выл...Вопрос № 31002: Здравствуйте, уважаемые эксперты. Пишу проект. Заказчик попросил сделать на форме окошко, в котором бы отображались объекты.
Форма отображает данные таблицы БД. Объекты могут быть Adobe Acrobat, Microsoft Visio, просто картинка.
При этом мне ...Вопрос № 31004: Здравствуйте, уважаемые эксперты в программировании на Delphi.
Недавно тут решил написать простенький мыл-клиент. Пользуюсь компонентами Indy SMTP и POP3. С отправкой всё окей, тока почему-то вместо заголовков письма на кириллице приходят кракозя...Вопрос № 31019: Здравствуйте уважаемые эксперты. У кого стоит Delphi 2005 не подскажите как добавлять свои компоненты в Tool Palette?...Вопрос № 31038: Здравствуйте, господа эксперты.
Вопрос такой:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var s:String;
begin
s:='Здесь что-нибудь по-русски';
writeln(s);
readln;
end.
<...Вопрос № 31058: Может ли кто-нибуть привести пример(самый простой) или дать ссылку на работу с BLOB - полем.
Подробности вопроса:
есть фотогафии их нужно вставлять автоматически в фастрепорт....Вопрос № 31067: Здравствуйте, я недавно задавал вопрос:
Нужно, чтобы прога при запуске пыталась получить почту (использую nmpop3), если возникает ошибка (нет соединения с интернетом, допустим), то прога должна sleep(10000) и снова pop3.connect. Вопрос: как ...Вопрос № 31074: Как запустить DVD файл расширений *.VOB и *.IFO
Такой метот не открывает файлы DVD
begin
ShellExecute(Application.MainForm.Handle, PChar('open'),
PChar('01.IFO'), Nil, PChar(''), SW_ShowNormal);
end;...Вопрос № 31076: Добрый день.
Подскажите пожалуйста что я не так сделал. Есть ListView. Viewstyle="vsReport." В свойстве Columns у него задано 3 поля (Фамилия имя отчество).
Когда я делаю так как указанно в приложении, добавляется новый элемент, но в поле Фам...
Вопрос № 30.994
Здравствуйте, уважаемые эксперты. Я пытаюсь создать сервис. У меня возникла проблема. Подскажите, пожалуйста
почему код (приведен ниже) нехочет компилироватся, DELPHI пишет :
[Error] Unit1.pas(42): Undeclared identifier: 'Screen'
[Error] Unit1.pas(43): Missing operator or semicolon
хотя если в uses добавить Forms то проэкт компилируется но скрин получается полностью белого цвета, подскожите пожалуста как это исправить.
З.Ы в обычном проэкте этот код работает.
Приложение:
Отправлен: 07.12.2005, 17:59
Вопрос задал: DeMON89 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: sir henry
Здравствуйте, DeMON89!
1. А Вы в forms.pas не пробовали заглянуть? :)
Как раз там и объявлена переменная Screen. Вы можете перенести объявление переменной в свою программу, а вот объявление класса и его описание, наверное лучше перенести в отдельный модуль.
2. Вам не обязательно использовать переменную Screen, используйте функции WinAPI. Тем более, Вы все равно переходите на эти функции при копировании. Получить ширину и высоту экрана можно другими способами:
GetSystemMetrics(SM_CYSCREEN); {Высота}
GetSystemMetrics(SM_CXSCREEN); {Ширина}
Ответ отправил: sir henry (статус: Академик)
Отправлен: 07.12.2005, 18:41 Оценка за ответ: 4 Комментарий оценки: пасиба
Отвечает: Маренич Владимир
Здравствуйте, DeMON89!
Переменная Screen объявлена в модуле Forms. Только не следует его "пихать" в USES секции INTERFACE. После IMPLEMENTATION укажите подключение модуля
USES Froms;
Ответ отправил: Маренич Владимир (статус: 9-ый класс)
Отправлен: 07.12.2005, 23:35 Оценка за ответ: 5 Комментарий оценки: большое спосибо теперь работает
Вопрос № 31.001
Нужно, чтобы прога при запуске пыталась получить почту (использую nmpop3), если возникает ошибка (нет соединения с интернетом, допустим), то прога должна sleep(10000) и снова pop3.connect. Вопрос: как сделать, чтобы при ошибке соединения прога не вылетала, а переходила к процедуре sleep? Пробывал делать:
try
pop3.connect;
except
sleep(10000);
end;
Не помогает.
Отправлен: 07.12.2005, 18:58
Вопрос задал: 34076 (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Denis Hakimov
Здравствуйте, 34076!
Попробуйте использовать структуру try...except...else...end, в Вашем случае после ключевого слова except нужно указать класс исключительной ситуации, которую Вы хотите обработать. Лучше использовать такой код:
try//попытка выполнить код
pop3.connect;
except//ищем исключения
else//единый обработчик для всех классов исключений
sleep(10000);
end;
Если приведете полный код приложения - можно будет оказать более существенную помощь.
Удачи!
Ответ отправил: Denis Hakimov (статус: 5-ый класс)
Отправлен: 07.12.2005, 19:10
Отвечает: Татьяна
Здравствуйте, 34076!
Немного непонятен вопрос, что именно не помогает, выдает ошибку?
Либо не коннектится заново? Так оно и не должно коннектиться, для этого вам необходим например рекурсивный вызов, однако, есть риск уйти в никуда, могу предложить так (см. приложение)
Приложение:
--------- Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 9-ый класс)
Отправлен: 07.12.2005, 19:20
Отвечает: sir henry
Здравствуйте, 34076!
Попробуйте так:
var
Yes: Boolean;
Begin
Yes:=False;
Repeat
Try
pop3.connect;
Yes:=True;
Except
sleep(10000);
End;
Until Yes;
End;
Ответ отправил: sir henry (статус: Академик)
Отправлен: 07.12.2005, 20:16
Вопрос № 31.002
Здравствуйте, уважаемые эксперты. Пишу проект. Заказчик попросил сделать на форме окошко, в котором бы отображались объекты.
Форма отображает данные таблицы БД. Объекты могут быть Adobe Acrobat, Microsoft Visio, просто картинка.
При этом мне все объекты нужно хранить в бд. Пока использую Access, затем перейду на ms sql. Так вот вопрос как мне сделать загрузку объектов в БД и потом отображение при просмотре таблицы?
Отправлен: 07.12.2005, 19:00
Вопрос задал: Batiskaf (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: sir henry
Здравствуйте, Batiskaf!
А какие объекты то?
Загружать можно с помощью LoadFromFile в BLOB поле, а отображение можно попробовать с помощью OleContaner, но будет зависеть от того, что за объекты, поэтому трудно сказать, что использовать.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 07.12.2005, 20:20 Оценка за ответ: 4 Комментарий оценки: По поводу Adobe Acrobat я и сам не могу сказать, что за объекты, уточню у заказчика, а вот по поводу visio могу сказать, что надо будет в БД хранить часть документа, например, чертеж здания или комнаты. Желательно, чтобы на форме отображался ХОТЯ БЫ превью объекта, хранящегося в БД.
Вопрос № 31.004
Здравствуйте, уважаемые эксперты в программировании на Delphi.
Недавно тут решил написать простенький мыл-клиент. Пользуюсь компонентами Indy SMTP и POP3. С отправкой всё окей, тока почему-то вместо заголовков письма на кириллице приходят кракозябры. Пробовал и в KOI8-R переводить - всё равно фигня. А с получением почты вообще капут. Не пашет. Не понимаю, как делать. Мой код в приложении. И ещё. Почему-то при запуске проверки почты по-дикому трафик жрется (прямо мегабайтами). Помогите, плиз. Вы знаете, что я оценки ставлю строго, но справедливо. И ещё. Просьба не отвечать
по нескольку раз одно и тоже. Не терплю корыстного набирания очков. А тем, кто хорошо ответит - 5 и личное спасибо.
С уважением, студент romodos
Приложение:
Отправлен: 07.12.2005, 19:32
Вопрос задал: Romodos (статус: Студент)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Vbhjndjhtw
Здравствуйте, Romodos!
Есть исходник программы. Лови на мыле.
--------- Бороться и искать, найти и перепрятать!
Ответ отправил: Vbhjndjhtw (статус: 6-ой класс)
Отправлен: 08.12.2005, 07:41 Оценка за ответ: 3 Комментарий оценки: Спасибо за старание, но я пишу на Delphi, a не на Visual Basic и просли дать овтет на конкретный вопрос по компоненту Indy POP3. Зачем присыла код программы, который мне никак не поможет
Вопрос № 31.019
Здравствуйте уважаемые эксперты. У кого стоит Delphi 2005 не подскажите как добавлять свои компоненты в Tool Palette?
Отправлен: 07.12.2005, 21:39
Вопрос задал: Beginner (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Маренич Владимир
Здравствуйте, Teapot!
У меня Delphi 7. Подозреваю, что как и везде: нужно в модуле вашего компонента использовать специальную процедуру Register.
Приложение:
Ответ отправил: Маренич Владимир (статус: 9-ый класс)
Отправлен: 08.12.2005, 00:56
Вопрос № 31.038
Здравствуйте, господа эксперты.
Вопрос такой:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var s:String;
begin
s:='Здесь что-нибудь по-русски';
writeln(s);
readln;
end.
Что и где указать, чтобы в консоли корректно отображался русский?
Спасибо.
Отправлен: 08.12.2005, 04:42
Вопрос задал: untitled (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, untitled!
В самом проекте - ничего. Просто наберите исходник в редакторе, который поддерживает кодировку CP866 (это как раз, которая в консоле), а потом откомпилируйте в командной строке:
dcc32 project1.dpr
Я пользуюсь для консольных проектов FAR'овским редактором и все тип-топ. :)
Ответ отправил: sir henry (статус: Академик)
Отправлен: 08.12.2005, 05:16 Оценка за ответ: 5
Отвечает: Vbhjndjhtw
Здравствуйте, untitled!
Во первых почему бы не написать на паскале?
Во вторых я открываю фармэнэджером файл с расширением *.dpr и вижу непонятную надпись, тогда я нажимаю F8(перехожу в досовскую кодировку) и всё становится понятным. Вот из этой досовской кодировки я копирую нашу надпись, перехожу в кодировку Win, нажатием F8, убираю непотные ероглифы и ставлю на их место то что скопировали из досовской кодировки. Сохраняю запускаю в Делфи и всё становится понятным.
В третих, если так противно писать в досе скачайте PascalABC
http://sunschool.math.rsu.ru/pabc/PABCDistr.zip - ознакомительная версия и
http://sunschool.math.rsu.ru/pabc/PABCDistrComplete.zip - для учеников компьютерной школы и зарегистрированных пользователей
P.S. как делать тоже самое стандартными средствами Делфи, я незнаю.
--------- Бороться и искать, найти и перепрятать!
Ответ отправил: Vbhjndjhtw (статус: 6-ой класс)
Отправлен: 08.12.2005, 07:21 Оценка за ответ: 5
Отвечает: akaDemik
Здравствуйте, untitled!
В user32 есть две функции CharToOemA и OemToCharA для преобразования строки в досовскую кодировку и обратно, можно использовать их. В приложении пример использования.
Приложение:
Ответ отправил: akaDemik (статус: 1-ый класс)
Отправлен: 08.12.2005, 08:38 Оценка за ответ: 5
Отвечает: Маренич Владимир
Здравствуйте, untitled!
Нужно перевести в ДОС-кодировку (866)
s:='Программа корректирует время документов, у которых оно одинаковое';
SetLength(s1, Length(s));
AnsiToOem(@s[1], @s1[1]);
Writeln(s1);
Ответ отправил: Маренич Владимир (статус: 9-ый класс)
Отправлен: 08.12.2005, 12:15 Оценка за ответ: 5
Вопрос № 31.058
Может ли кто-нибуть привести пример(самый простой) или дать ссылку на работу с BLOB - полем.
Подробности вопроса:
есть фотогафии их нужно вставлять автоматически в фастрепорт.
Отправлен: 08.12.2005, 12:02
Вопрос задал: Vbhjndjhtw (статус: 6-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, Vbhjndjhtw!
Посмотрите вот здесь:
http://www.fastreport.ru/ru/documentation/
Ответ отправил: sir henry (статус: Академик)
Отправлен: 08.12.2005, 12:15
Вопрос № 31.067
Здравствуйте, я недавно задавал вопрос:
Нужно, чтобы прога при запуске пыталась получить почту (использую nmpop3), если возникает ошибка (нет соединения с интернетом, допустим), то прога должна sleep(10000) и снова pop3.connect. Вопрос: как сделать, чтобы при ошибке соединения прога не вылетала, а переходила к процедуре sleep? Пробывал делать:
try
pop3.connect;
except
sleep(10000);
end;
Не помогает.
К сожалению, не один из предложеных вами вариантов решения проблемы не помог. Попытаюсь подробнее:
Программы вообщем-то еще нет, есть одна процедура:
procedure TForm1.FormCreate(Sender: TObject);
begin
pop3.connect;
end;
Т.к. соединения с интернетом нет, то ясно происходит ошибка, появляется окно:
Project Project1.exe raised exception class ESockError with message 'Host Lookup Failed'. Process stopped. Use Step or Run to continue.
Дык вот, мне нужно, чтобы это окно не вылазило и программа не останавливалась. А делала следующее: если pop3.connect проходит неудачно, то программа отдыхает секунд 10 (sleep(10000)) и снова пытается pop3.connect, а если pop3.connect проходит удачно (установлено соединение с интернетом, сервер нормально принял), то там какие-нибудь другие действия (получение почты, например).
Вопрос: как избавиться от этого окна и остановки программы?
Отправлен: 08.12.2005, 13:48
Вопрос задал: 34076 (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, 34076!
Избавится от этого окна можно только одним способом - установить предварительное соединение с инетом. Может быть опять не то? Вы как-то порциями информацию о том, что Вам нужно выдаете... :)
Ответ отправил: sir henry (статус: Академик)
Отправлен: 08.12.2005, 14:30
Отвечает: Denis Hakimov
Здравствуйте, 34076!
Программа будет останавливаться только при запуске из среды Delphi. Если Вы запустите созданный exe-шник - окно не появится, а будут выполнены действия, которые Вы указали после ключевых слов try...except. Первое, что пришло в голову в приложении
Удачи!
Приложение:
Ответ отправил: Denis Hakimov (статус: 5-ый класс)
Отправлен: 08.12.2005, 14:41 Оценка за ответ: 5
Отвечает: Ерёмин Андрей
Здравствуйте, 34076!
Думаю, вот так:
Либо Abort перенести на строку выше. А вообще, sleep(10000) лучше не делать в блоке try..except, т.к. это ну очень странный метод. Уж лучше при ошибке переменной-ключу присваивайте значение и, если после коннекта ключ равен ошибке, то делаем Sleep.
--------- Где найти кpяк под ковpик для однокнопочного мыша?
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 08.12.2005, 17:47
Вопрос № 31.074
Как запустить DVD файл расширений *.VOB и *.IFO
Такой метот не открывает файлы DVD
begin
ShellExecute(Application.MainForm.Handle, PChar('open'),
PChar('01.IFO'), Nil, PChar(''), SW_ShowNormal);
end;
Отправлен: 08.12.2005, 14:27
Вопрос задал: Serhik_z (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: REFERI
Здравствуйте, Serhik_z!
Эта функция действует для файлов у которых установленна ассоциация с к-л программой.
Работать будет так PChar('01.VOB'), Nil, PChar(''), SW_ShowNormal); - запустится фильм. У меня он запускается в WinDVD. Надо ассоциировать этот тип файлов с к-л программой, тогда все будет работать, а если файлу не сопоставлена ни одна программа, тогда нет.
Правой кнопкой кликаете на файл выбираете открыть с помощью - выбрать программу. Выбираете и ставите галочку "Использовать ее для всех файлов такого типа"
Если вы хотите чтобы ваша программа работала не только на вашем компьютере, т.е. не у всех ведь установлена такая связь, а запустить файл надо, тогда пропишите процедуру изменения параметров запуска для файлов такого типа в реестре.
Удачи в кодинге!
--------- Не судите, да не судимы будете...
Ответ отправил: REFERI (статус: Студент)
Отправлен: 08.12.2005, 16:27
Вопрос № 31.076
Добрый день.
Подскажите пожалуйста что я не так сделал. Есть ListView. Viewstyle="vsReport." В свойстве Columns у него задано 3 поля (Фамилия имя отчество).
Когда я делаю так как указанно в приложении, добавляется новый элемент, но в поле Фамилия пустая строка. Тоесть в таблице просто Иван Иванович, а поле фамилия - пустое.
Собственно вопрос, а почему?
Спасибо.
Приложение:
Отправлен: 08.12.2005, 14:38
Вопрос задал: akaDemik (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Schmak
Здравствуйте, akaDemik!
Попробуйте вот так:
var
li : TListItem;
begin
li:=lvWorkers.Items.Add;
li.Caption := 'Иванов';
li.SubItems.Add('Иван');
li.SubItems.Add('Иванович');
end;
--------- Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Студент)
Отправлен: 08.12.2005, 15:07 Оценка за ответ: 4 Комментарий оценки: Спасибо. Так работает. Проблема в тм что я хотел сделать наследника от TListItem и создать в нем консруктор копирования. Примерно так: TDataItem = class(TListItem) private Info : TRecData;//Переменная класса хранящая всю информацию о работнике public constructor Create(AOwner: TListItems; Inf : TRecData); overload; end;
constructor
TDataItem.Create(AOwner: TListItems; Inf: TRecData); begin Create(AOwner); Info := Inf; end; Видимо не выйдет :(
Отвечает: Ataman N. N.
Здравствуйте, akaDemik!
Нужно создать еще один SubItems:
li.SubItems.Add('Иванов');
Ответ отправил: Ataman N. N. (статус: 3-ий класс)
Отправлен: 08.12.2005, 21:10 Оценка за ответ: 2 Комментарий оценки: Не люблю ставить плохие оценки. SubItems отображаются начиная со второй колонки. В первой по логике вещей Caption. Если сделать li.SubItems.Add('Иванов'); li.SubItems.Add('Иван'); li.SubItems.Add('Иванович'); В фамилии так и будет пусто, имя будет Иванов, а то что он Иванович вообще никто не увидит.