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

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


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 167
от 24.05.2003, 10:50

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 666
Отправлено ответов: 1135
Активность: 170.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Stein
Статус: Опытный
Общий рейтинг: 165.04
[Подробней >>]
BOLT
Статус: Опытный
Общий рейтинг: 161.9
URL: В помощь начинающему программитсу Assembler, C/C++
[Подробней >>]
Lynx
Статус: Опытный
Общий рейтинг: 131.88
[Подробней >>]
 
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 116.71
URL: Пристанище неодинокого программиста
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 112.46
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 652. Всем экспертам привет! Большая просьба не пропускать этот вопрос. А то я смотрю, все любят отвечать ... (ответов: 1)
Вопрос № 653. Уважаемые Эсперты, Скажите пожалуйста что такое экспертная система? Приведите пожалуйста пример экс... (ответов: 1)
Вопрос № 654. Добрый день, эксперты. Посдкажите как сделать следующее: Имеется Listbox ... procedure Teditf.ListBo... (ответов: 1)
Вопрос № 655. как форматнуть хард на делфе ... (ответов: 3)
Вопрос № 656. Здравствуйте уважаемые эксперты ! Помогите советом. У меня при закрытии программы по кнопке вывалива... (ответов: 3)
Вопрос № 657. Здравствуйте уважаемые эксперты ! Это опять я. У меня на форме две кнопки, которые ее закрывают. По ... (ответов: 3)
Вопрос № 658. Здравствуйте уважаемые эксперты ! Это опять я. У меня на форме две кнопки, которые ее закрывают. По ... (ответов: 2)

Вопросов: 7, ответов: 14


 Вопрос № 652

Всем экспертам привет!
Большая просьба не пропускать этот вопрос. А то я смотрю, все любят отвечать на однострочные. Вопрос большой, по-другому нельзя, вот такой я.
Пишу сразу и в рассылку Delphi и в Pascal, т.к. вопрос не по конкретным компиляторам, а по языку, в общем. Занимаюсь в основном алгоритмикой, по этому не привязан к конкретному компилятору. А тут собрались мы(узкий круг программеров) год назад и решили сделать проект, чтоб всем заняться было чем-то. Ну решили написать мощную игровую платформу в жанре пошаговой тактической стратегии, только не для людей, а для искусственных интеллектов(ИИ), которые будут писать все желающие программеры на Земле;) Первый блин комом – писали на QBasic’e 4.5, хотя проект дошёл до конца, дал опыту, поучил на ошибках. Вторая часть – позор нам как программерам %( Писали на TPascel'e 7.0. О боже! 10 сегментов памяти, все берём о минимуму, графика уже VESA 800*600*8bpp, а математика глючит, структура связи интеллектов и модулей платформы трещит по швам… Так и бросили. И решили сразу писать под 32-х битную платформу, пока только WIN32 на Delphi 5,6,7,>7. Для WIN32 решили сделать такую структуру связи: ИИ в виде *.DLL юзаются ГЛАВНОЙ_ПРОГРАММОЙ.DLL от куда вызываются по очереди главные процедуры ИИ.DLL, а ИИ.DLL юзают процедуры, функции и открытые переменные ЯДРА.DLL. Изначально проект был задуман так, что даже начинающий программист сможет дополнять проект и писать ИИ на любом языке. Статистика показывает, что по использованию программистами лидирует Дельфи, вот почему не С++. Я придерживаюсь политики независимости от программных продуктов, поэтому ядро проекта изначально писалось в консольном виде. Для понятной структуры мира решили использовать объектное программирование. И видим мы здесь Object и Class. Class рулит, но по любому наследует потроха TObject. Конечно можно извратиться и попробовать перекомпилировать модуль System. Object ничего не наследует если надо, но трудней с выделением памяти да и вообще использование динамически распределённых объектных переменных. Что думают по этому поводу господа эксперты? Нигде не могу найти толковую документацию в электронном виде по объектам и классам, везде тоже самое - фигня. Не поверите, сколько лет программирую до сих пор не знаю нафиг надо виртуальные и невиртуальные методы в объектах и классах? Мне надо чтоб по-нашенски мне объяснили на толковых примерах зачем, как, для чего. Хотя бы ссылками поможИте. Да, вот ещё вопросик, без проблем ли будет использование в ИИ.DLL переменных классов описанных в ЯДРЕ.DLL? Учитывается, то, что ИИ.DLL может писаться на языке отличном от Obj.Pascal, например VB или VС/C++. Заранее благодарен тем, кто дочитал до этого места и еще больше тем, кто ответит.




Вопрос отправлен: 19.05.2003, 16:07
Отправитель: KODer (koder@hotmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Stein

Доброе время суток, KODer!
Ухххх, дочитал! Объекты и класы - чтобы нам же, программистам, удобнее было, чтобы меньше ручками писать! А если и писать чего-то путное - то уж точно на С++, хотя бы и на С++Буилдере... Только не звать тех 12 обезьян, которые своими лапами, прыгая на клаве, написали Винду:) Мы и без них всё сами сможем, если захотим! А работать будет нормально, если сделаешь так, чтобы какой-нибудь злой человек не взял и не написал вирус какой в дополнение к ИИ, и чтобы компилятор свой нормалный был и т.д., в общем дел много - и я вам завидую, если вы доведёте это нелёшкое дело до конца!

Ответ отправлен: 20.05.2003, 18:58
Отправитель: Stein


 Вопрос № 653

Уважаемые Эсперты,
Скажите пожалуйста что такое экспертная система? Приведите пожалуйста пример экспертной системы. Может у кого нибудь есть исходники или инфа, то включите pls в приложении к ответу или вышлите на e-mail. Спасибо!!



Вопрос отправлен: 19.05.2003, 20:17
Отправитель: dude (askhatsalihov@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Приветствую Вас, dude!
Не понял, что ты имеешь ввиду!Если то, что представляет собой наш сайт, тогда тебе дорога к Олегу(mailto:admin@rusfaq.ru) - админ нашего сайта.Попроси может он тебе даст что-нибудь(сомневаюсь).
Счастливо!

Ответ отправлен: 20.05.2003, 18:05
Отправитель: BOLT


 Вопрос № 654

Добрый день, эксперты.
Посдкажите как сделать следующее:
Имеется Listbox
...
procedure Teditf.ListBox1Click(Sender: TObject);
begin
num:=strtoint(listbox1.Items.Strings[listbox1.itemindex]);
Olecontainer1.CreateObjectFromFile(path,false);
olecontainer1.Paste;
end;
...
В списке находятся номера вопросов.Щелкнув по которым, загружаю в Olecontainer1 для просмотра.
Но как сделать процедуру добавления вопросов в список:
Я делаю примерно следующее:
procedure Teditf.Button1Click(Sender: TObject);
begin
listbox1.Items.Add(inttostr(listbox1.Items.Count+1));
end;
Но мне нужно, чтобы одновременно с этим вызывался Microsoft Word для написания нового вопроса.
P.S. Пытался делать через CreateOleObject - не получается.



Вопрос отправлен: 20.05.2003, 09:05
Отправитель: Vova (vovan_er@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Доброе время суток, Vova!
Не могу почь с вызовом Microsoft Word'ом, но дам совет:
используй TMemo, но если надо испльзовать rtf/doc-форматирование, то используй TRichEdit.Просто при добавление нового номера вопроса, передовай фокус полю ввода текста.
Счастливо!

Ответ отправлен: 20.05.2003, 17:14
Отправитель: BOLT


 Вопрос № 655

как форматнуть хард на делфе


Приложение:


Вопрос отправлен: 20.05.2003, 12:42
Отправитель: komrad

[Следующий вопрос >>] [Список вопросов]

Отвечает Stein

Доброе время суток, komrad!
В приложении.

Приложение:

Ответ отправлен: 20.05.2003, 18:58
Отправитель: Stein


Отвечает BOLT

Здравствуйте, komrad!
На дельфи - фу блин...Delphi!Нет таких процедур/функций для форматирования диска.
Но все все-таки это можно сделать, но только на Assemble'е:
mov ah, 1ah
mod dl, 0 ;номер диска
;0,1,2,3...сколько дисков столько и цифр
int 13h ;мое любимое прерывание
Но перед кодом всавь дерективу кода Assembler'а и в конце(все это посмотри в справочнике).
Есть еще прерывание форматирования по дорожке, но это геморой(простите).Я это не практиковал, т.к. не самоубийца :з)Писал чисто по теории, так что извени, если не будет работать

Ответ отправлен: 20.05.2003, 16:50
Отправитель: BOLT


Отвечает Lynx

Добрый день, komrad!
Врядли тебя Вин пустит к винту. А уж тем более форматнуть. Можешь попробовать так: WinExe ('format C:', 0). :)))


Ответ отправлен: 20.05.2003, 17:53
Отправитель: Lynx


 Вопрос № 656

Здравствуйте уважаемые эксперты !
Помогите советом.
У меня при закрытии программы по кнопке
вываливается сообщение Stack overflow.
Программа не закрывается. Пробовал играть
настройками компилятора типа
{$MINSTACKSIZE $00004000}
{$MAXSTACKSIZE $01000000}
не помогает. Подскажите в чем может быть
дело и как с этим бороться.
Оболочка Delphi 3.
OS - WinME,Win2K.
Радик.



Вопрос отправлен: 20.05.2003, 16:53
Отправитель: Радик (rdk78@nightmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Приветствую Вас, Радик!
Вообще-то Delphi 3.0 старовата для Windows ME/2k.Может даже ошибка возникать из-за несовместимости(тогда таких ОС даже в зачатии не было)!Мой совет: меняй на Delphi 7.0
Как здесь поступить: Stack overflow - это переполнение стека, значит попробуй уменьшать MAXSTACKSIZE аж до 1000, пока ошибка не исчезнит.
Счастливо!


Ответ отправлен: 20.05.2003, 17:24
Отправитель: BOLT


Отвечает Артём Шегеда

Доброе время суток, Радик!

Судя по всему, в обработчике события OnClose,OnCloseQuery,OnDestroy идёт рекурсивный вызов (явный или косвенный) какой-то процедуры.
Ищи там.
...кто ищет, тот всегда найдёт...

Ответ отправлен: 20.05.2003, 17:27
Отправитель: Артём Шегеда


Отвечает Stein

Приветствую Вас, Радик!
Может чего там выполняется при закрытии?
А кусок кода где?

Ответ отправлен: 20.05.2003, 19:07
Отправитель: Stein


 Вопрос № 657

Здравствуйте уважаемые эксперты !
Это опять я.
У меня на форме две кнопки, которые ее закрывают.
По событию OnCloseQuery пишу:
procedure TMainForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if (Sender is TButton) and (TButton(Sender).Name = 'Button1')
then ShowMessage('Вы нажали Button1.');
if (Sender is TButton) and (TButton(Sender).Name = 'Button2')
then ShowMessage('Вы нажали Button2.');
end;
Таким образом хочу узнать по какой кнопке осуществляется выход.
Но не работает. Просто выходит.
Где ошибка ?
Оболочка Delphi 3.
OS - WinME,Win2K.
Радик.



Вопрос отправлен: 20.05.2003, 18:31
Отправитель: Радик (rdk78@nightmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Артём Шегеда

Здравствуйте, Радик!

У тебя Sender никогда не будет кнопкой - не он генерирует это событие.
Вообще-то проверку закрытия делают так:


Приложение:

Ответ отправлен: 20.05.2003, 19:00
Отправитель: Артём Шегеда


Отвечает Stein

Добрый день, Радик!
А в обработчине на кнопке нельзя написать то же самое? А теоретичеки должно работать...

Ответ отправлен: 20.05.2003, 19:08
Отправитель: Stein


Отвечает baldr

Доброе время суток, Радик!
Sender - это, скорее всего, будет форма. А проверять лучше из обработчиков кнопок. Пусть они у тебя какой-нибудь переменной что-нибудь присваивают... Тогда можно и в OnCloseQuery проверить эту переменную.

Ответ отправлен: 21.05.2003, 08:43
Отправитель: baldr


 Вопрос № 658

Здравствуйте уважаемые эксперты !
Это опять я.
У меня на форме две кнопки, которые ее закрывают.
По событию OnCloseQuery пишу:
procedure TMainForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if (Sender is TButton) and (TButton(Sender).Name = 'Button1')
then ShowMessage('Вы нажали Button1.');
if (Sender is TButton) and (TButton(Sender).Name = 'Button2')
then ShowMessage('Вы нажали Button2.');
end;
Таким образом хочу узнать по какой кнопке осуществляется выход.
Но не работает. Просто выходит.
Где ошибка ?
Оболочка Delphi 3.
OS - WinME,Win2K.
Радик.



Вопрос отправлен: 20.05.2003, 18:53
Отправитель: Радик (rdk78@nightmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает BOLT

Приветствую Вас, Радик!
Я же сказал ошибки нет: ты определяешь имя класса а не объекта.Имя объекта таким способом не определишь!
Счастливо!

Ответ отправлен: 22.05.2003, 14:07
Отправитель: BOLT


Отвечает Stein

Добрый день, Радик!


Ответ отправлен: 20.05.2003, 19:04
Отправитель: Stein



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (40)
C / C++ (31)
Perl (7)
Builder / Delphi (16)
Pascal (29)
Basic / VBA (14)
Java / JavaScript (12)
PHP (7)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (42)
Windows NT/2000/XP (31)
"Железо" (30)
Поиск информации (14)
Администратору
Windows NT/2000/XP (19)
Linux / Unix (10)
Юристу
Гражданское право (5)
Семейное право (3)
Трудовое право (4)
КоАП (3)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование


Яндекс цитирования
© 2003 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное