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

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


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

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

Выпуск № 567
от 20.08.2006, 06:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 361, Экспертов: 51
В номере:Вопросов: 2, Ответов: 2


Вопрос № 52067: Здравствуйте, товарищи эксперты! Почему функция CheckListBox1.Items.Add('Привет мир!') возвращает -1, а должна возвращать индекс новой строки, которую я добавил? Система: Delphi 7+ SP1....
Вопрос № 52133: Такой вопрос. Создаю тип. : type Tinfo = record Fam : string[15]; Name : string[15]; Otch : string[15]; Date: String[10]; City: string[15]; Street: String[20]; Dom: string[5]; kv: string[5]; tel_home...

Вопрос № 52.067
Здравствуйте, товарищи эксперты!

Почему функция CheckListBox1.Items.Add('Привет мир!') возвращает -1, а должна возвращать индекс новой строки, которую я добавил?

Система: Delphi 7+ SP1.

Приложение:

Отправлен: 14.08.2006, 10:42
Вопрос задал: Подболотов Иван Алексеевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ерёмин Андрей
Здравствуйте, Подболотов Иван Алексеевич!
Вероятно, это ошибка где-то у вас в программе. Код, который в приложении, правильно выдаёт числа - сначала 0, затем 1, 2 и т.д. Возможно, у вас перекрывается какое-либо из событий этого компонента. Кроме того, у вас особенная версия Delphi - там это может быть. Я тестировал на D7. Что за версия "7+" - не знаю. Попробуйте поэкспериментировать аналогичным образом над ListBox, ComboBox - если "ошибка" проявляется везде - значит со стандартными компонентами что-то не так. Увы, других предположений нет...

Приложение:

---------
Нет правила без исключений. Правило без исключений - исключение из правил.

Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 14.08.2006, 10:52
Оценка за ответ: 5
Комментарий оценки:
Будем тестировать. Я хотел написать Delphi 7 с Пакетом обновления 1. Не так выразился. Спасибо!


Вопрос № 52.133
Такой вопрос. Создаю тип. : type
Tinfo = record
Fam : string[15];
Name : string[15];
Otch : string[15];
Date: String[10];
City: string[15];
Street: String[20];
Dom: string[5];
kv: string[5];
tel_home: string[10];
tel_mob: string[10];
passport: string[10];
first_travm: string[10];
type_kol: string[20];
child: TListView;
Photo: TDBImage;
end;

После этого работаю с типизированным файлом. В приложении. Фото гружу из DbImage. Вроде код исполняется... но размер выходного файла все равно меньше, чем даже сама картинка. Пробую извлекать эту картинку так: procedure TForm1.Button1Click(Sender: TObject);
Var F : file of TInfo;
t:TInfo;
begin
AssignFile(f,'C:info.bti');
Reset(F);
try
while not Eof(F) do begin
Read (F, t);

image1.Picture:=t.Photo.Picture;
end;
finally
closefile(f);
end;

end;

Выдает ошибку, как бы обращение к несуществующей памяти. Могу предположить, что картинки там и не загрузилось. Причем вся текстовая инфа читается от туда. Вот, что есть по данной проблеме. Если, что, ожет кто0нить предложит другой способо экспорта-импорта инфы из БД для ручной синхронизации.

Приложение:

Отправлен: 14.08.2006, 22:13
Вопрос задал: CJ (статус: Практикант)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 15)

Отвечает: sir henry
Здравствуйте, CJ!
Особенно меня порадовало в Вашем типе TDbImage. :)
Вызывает большое сомнение его нужность там. По-моему вполне можно обойтись и TImage.
Теперь по поводу главной ошибки. Вы наверное не знаете, а может и забыли второпях, что любые объекты в Дельфи динамические, т.е. это указатель с размером в 4 байта. И если Вы записываете в типизированый файл что-либо из переменных типа Вашего TDBImage, то Вы записываете не сам объект, а именно указатель, т.е. 4 байта и не более того.
Когда Вы пытаетесь загрузить Вашу картинку, то в t.Photo у Вас записан адрес памяти, по которому ничего нет. В прошлый раз картинка там может быть и была, но ведь Вы же программу в памяти не держите постоянно, так ведь?
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 15.08.2006, 05:41
Оценка за ответ: 5


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное