Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2

Модерирует : ShIvADeSt

ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы http://forum.ru-board.com/topic.cgi?forum=33&topic=3647&start=2020#lt
Внимание, все большие куски кода (более 5 строк) оформляем в тег [more] дабы уменьшить размер поста.

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:52 20-04-2006 | Исправлено: ShIvADeSt, 02:02 30-06-2006
Tartrout



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
 
1. Assign - это метод наследников TPersistent. А у меня структура.  
 
2. Даже если я использую этот метод, это не будет перегружать присваивание.  
 
Я хочу, чтобы когда в коде встречается выражение A := B, то вызывалась бы моя функция. Так же, как я это могу сделать на C++. Как я понимаю, даже если метод Assign написан, он не будет вызываться в этом контексте. Или я неправ?
 
vshersh
 
Ах, коллега...
 
OdesitVadim
 
Вы, видимо, не прочитали оригинальный (мой) реквест. Перегружать арифметические операторы я умею, спасибо большое. Вопрос в том, как перегрузить оператор присваивания. Его нет в списке разрешенных к перегрузу:
 
The following table shows the Delphi operators that can be overloaded:
 
Подробнее...  

Всего записей: 316 | Зарегистр. 24-07-2002 | Отправлено: 12:30 28-02-2007 | Исправлено: Tartrout, 12:36 28-02-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Tartrout

Цитата:
Assign - это метод наследников TPersistent. А у меня структура

А я и написал, что для своих классов можно сделать, TPersistent тут совсем не причем.
С перегрузкой для классов... Дело в том, что в делфи переменная типа класс это указатель (статических экземпляров класса в делфи не бывает) и перегружать для нее например оператор присваивания я не совсем представляю как.

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 14:44 28-02-2007
Tartrout



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
 
Я не нуждаюсь в перегрузке оператора присваивания для класса. Мне вполне достаточно для структуры. Вызывать метод Clone это убожество. Я, положим, не забуду, что его надо вызвать. А другой программист, пользующийся моими структурами, напишет присваивание, и будет очень плохо
 

Цитата:
Дело в том, что в делфи переменная типа класс это указатель (статических экземпляров класса в делфи не бывает) и перегружать для нее например оператор присваивания я не совсем представляю как.

 
Если не совсем представляете, то рекомендую книжку Бьерна Страуструпа "Язык программирования С++". То что для указателя можно перегрузить оператор присваивания - само собой очевидно. Более того, это довольно часто делается. Иначе как, по-Вашему, работают смартпоинтеры?
 
Господи, почему я вынужден писать на этом пиджин-паскале??? (Плачет, утираясь рукавом)

Всего записей: 316 | Зарегистр. 24-07-2002 | Отправлено: 15:22 28-02-2007 | Исправлено: Tartrout, 15:46 28-02-2007
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
offtopic
Tartrout

Цитата:
Господи, почему я вынужден писать на этом пиджин-паскале???

Карма у тебя такая, и сильно не стони, а то войну спровоцируешь. :(((((((

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 15:43 28-02-2007
Tartrout



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
offtopic  
vserd
 
Всё-всё. Собрался уже. Порядок.

Всего записей: 316 | Зарегистр. 24-07-2002 | Отправлено: 15:49 28-02-2007
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вы вот мне только честно скажите - этот 2007, это полноценная штуковина, на нее можно положиться?? или лучше подождать BDS2007?
Мы разрабатываем принципиально только вин32 приложения (нужна совместимость с виндовсом 98) и в .нет смысла нет, но является ли д2007 нормальной тулзой
 
или это полуфабрикат, глючащий похуже бдс2006 (стыдно сказать, чего стоят его постоянные вылеты)
 
и вообще как там со стратегией, они будут делать ставку на бдс или всё-таки появятся вновь нормальные раздельные продукты?

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 22:37 28-02-2007
xitsmex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Свойства вообще-то предполагают не столько хранение, сколько необходимость в определенных действиях при задании-получении значения, а здесь классу датасет нужен на всем времени жизни, причем задается он только один раз - самое то через параметр конструктора задать.
Хм. Имхо в свойстве - красИвее - имено так поступают, например, с DataSource. И это универсальнее - когда то нам может понадобится сменить этот самый DataSet. А вот под этим:

Цитата:
а как порекомендаете например сохранять настройки-состояние фрейма?
я понял настройки рода: положение, свойства обработки и прочее, которые, имхо, лучше хранить в свойствах.

Всего записей: 58 | Зарегистр. 31-08-2005 | Отправлено: 00:38 01-03-2007
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[всхлипнул, потёр нафик ибо флуд :)]

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 01:32 01-03-2007 | Исправлено: xy, 01:42 01-03-2007
murkovich



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xy
Насчет совместимости с 98 - кажется, недавно где то читал, что они наконец решились постепенно избавляться от балласта, который связан с 98. (Источник не помню.) Но, если 98 важна, то вряд ли имеет смысл модернизироваться на 2007 или новее.
 
Все-таки, раньше или позже, но юникоду быть, а юникод и 98 - вещи трудно совместимые.
 
Вот, одну цитату нашел -
Цитата:
Delphi for Win32 is the only IDE that supports creating native code applications compatible with Windows 2000, XP, AND Vista. Delphi for Win32 not only allows you to develop on all three platforms, but also lets you deploy for any of the three.
- там, правда, не говорится "не будет работать на 98", но и не обещается.

Всего записей: 1551 | Зарегистр. 26-05-2005 | Отправлено: 02:46 01-03-2007
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
murkovich
ну понятно, хотя Вин32 АПИ со времен 98-го не особо менялся :)
проблема в баговитости жуткой бдс2006 и тлеет слабая надежда что в 2007 такое поправили
хотя конечно вряд ли.. как начало оно с дельфи8 глючить.. так неизвестно когда закончит - еще есть мысли мигрировать на ТурбоДелфи, но что-то мне подсказывает что та среда слабовата для наших задач, а попробовать нет возможности, т.к. в соотв ветке сказали, что поставить турбо параллельно с бдс нельзя :-/
 
Добавлено:
спасибо большое за цитату

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 03:10 01-03-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
xitsmex

Цитата:
Хм. Имхо в свойстве - красИвее - имено так поступают, например, с DataSource. И это универсальнее - когда то нам может понадобится сменить этот самый DataSet

Свойство для датасета разумеется не помешает сделать, но передавать значение, обязательное для функционирования класса, через параметр конструктора на мой взгляд тоже симпатично, хотя все это уже вкусовщина и непосредственно к делфи отношения не имеет  
 
По поводу настроек - человек спрашивал не как их хранить на этапе выполнения (если я понимаю правильно там будут какие-нибудь настройки сортировки, фильтрации и т.п. - а они так или иначе уже хранятся в свойствах дочерних для фрейма объектов), а как их запоминать чтобы новосозданный фрейм мог их восстановить. И это можно сделать и в деструкторе, и в BeforeDestruction, и просто сделав метод SaveSettings с вызовом его в нужном месте формы... Все на усмотрение разработчика, главное что бы работало

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 08:02 01-03-2007
ArtemiyUO

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xy
Я конечно понимаю что это офтоп, но все же.
Немогли бы вы привести список нескольких самых неприятных багов в бдс2006 вин32?
Я работаю в ней очень плотно уже больше года и не испытваю практически никаких серьезных проблем.

Всего записей: 539 | Зарегистр. 12-12-2005 | Отправлено: 08:16 01-03-2007
xitsmex



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
Полностью согласен.

Всего записей: 58 | Зарегистр. 31-08-2005 | Отправлено: 10:28 01-03-2007
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtemiyUO
Основное:
1. редкое закрытие среды (практически никогда, если открыт проект какой-нить) не заканчивается шквалом "Application Error" и "Разрушительных сбоев"
2. часто во время работы случаются вылеты "corebpl....dll"  и т.п. что иногда да приводит к неработоспособности среды.. вот например вчерась вылетела очередня дллка и перестала работать навигация кнопками %) тока буквы вводи :):)
 
глючит часто, я бы сказал постоянно
есть подозрения на варезную версию, но есть и большие сомнения что из-за этого
 
ЗЫ. правда делфи еще приправления такой "стабильной" тулзой как JEDI VCS, но лучшей бесплатной альтернативы найти не удалось :-/ бдез неё никак, хотя возможно она тоже помогает глюкавому делу

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 11:12 01-03-2007
qwedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xy
Лично у меня на 3 разных компьютерах (правда ставил всегда с одного диска) ни разу не вылетала (кроме шуток), чего не скажу о Delphi 7. Вам надо либо искать другую копию программы, либо попробовать ОС переставить - может из-за неё?
 
Единственное что беспокоит - панельки. Расставляю каждый раз как мне удобно, закрываю. А при новом запуске все опять по-умолчанию. Кто-нибудь может подсказать как исправить? Думаю где-то должна быть возможность сохранить раскладку панелек, но сам не нашел пока что.

Всего записей: 110 | Зарегистр. 12-07-2006 | Отправлено: 11:29 01-03-2007 | Исправлено: qwedr, 11:31 01-03-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ArtemiyUO
А можно я пожалуюсь!!!
То что вспомнилось с лету:
1. Периодически начинает жрать память и тормозить, если съела больше полугига - можно перезапускать с чистой совестью
2. Иногда вылетают ексепшены в coreide.dll
3. При работе с библиотеками типов (КОМ) глючит по черному (то пас не пересоздает, то не сохраняет, то опять же ексепшены)
4. Не особо гладко работает на двухмониторной системе (если поселить на второй монитор)
 
xy
А вот то, что поправят глюки, как то слабо верится - у них в квалити центре есть критические ошибки, которые по году и больше висят, и никто особо не чешется. И вообще его бывает интересно поглядеть
http://qc.codegear.com/wc/qcmain.aspx?da=1

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 11:32 01-03-2007 | Исправлено: RomanTim, 11:37 01-03-2007
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
qwedr

Цитата:
либо попробовать ОС переставить - может из-за неё?

переставлялась много раз, работает на лицензионных ХРях ;)
релиз один из первых, от ShockISO патченый, 4диска..
 
RomanTim

Цитата:
2. Иногда вылетают ексепшены в coreide.dll

да, несколько разных иногда вылетает
а еще оно иногда тупо не видит файл проекта - пока не открыть в среде рядышком - ругается на uses :-/

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 12:22 01-03-2007
dmit000



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет.
 
Мне нужна помощь
Часть кода проектика на котором произошёл затык и краткое описание
проблемы (файл Вопрос.txt) можно скачать по адресу http://slil.ru/24012116  
файл: Вопрос.exe 106,827 байт
 
Ответ прошу Вас прислать в виде дописанного кода в моей программке
на мой адрес dmit30@ngs.ru или текстовкой в форум.
 

Всего записей: 483 | Зарегистр. 07-06-2004 | Отправлено: 15:49 01-03-2007 | Исправлено: dmit000, 16:08 01-03-2007
murkovich



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xy

Цитата:
ну понятно, хотя Вин32 АПИ со времен 98-го не особо менялся

Не совсем согласен. Да, те части, которые были уже в 98, почти не менялись. Но не так уж мало новых возможностей добавилось после 98. Если всё время оставаться при наибольшем совместном делителе всех 32-битных виндоус, т.е., на уровне 98 или даже 95, то мы сильно связываем себе руки.  
 
Примером служит хотя бы тот самый юникод.
 
Ясно, что всё еще имеются желающие пользоватъся 98, но с точки зрения "общественной" пользы я одобяю решение отказаться от тормоза в виде требования 100% совместимости с 98.
 
Но в итоге, скорее всего, как среда разработки 98 отпадает сама по себе, а как целевая среда все-таки остается. Возможно, при соблюдении некоторых условий по используемым компонентам/функциям. (имхо)

Всего записей: 1551 | Зарегистр. 26-05-2005 | Отправлено: 16:41 01-03-2007
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dmit000
Посмотрел твою прогу... На мой взгляд 10, 100 и даже 1000 строк - это далеко не критично для объема одного юнита. Выносить в другой юнит разумно те вещи, которые могут использоваться из нескольких других, ну или реализацию некоего класса, как вещи в себе.
 
Но если так хочется можно сделать модуль с процедурой FillComboBox, подключить его в uses первого, и вызывать из обработчика ComboBox1Change эту процедуру:
FillComboBox(ComboBox2, ComboBox1.Text);

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 17:01 01-03-2007 | Исправлено: RomanTim, 17:02 01-03-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2
ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru