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

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


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

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

Выпуск № 476
от 18.05.2006, 03:35

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


Вопрос № 42812: Добрый день, Уважаемые Эксперты! Вопрос такой: В run-time создаю компонент timage и загружаю в него фотку. есть также кнопка (код в приложении). Должна очистить (убрать) фотку с timage. Почему-то не работает. Выдает акцесс виолатион. В чем грабли...
Вопрос № 42829: Здраствуйте! Некогда не работал с InterBase!Поэтому возникают вопросы: 1)Какие приложения,библиотеки,сервисы нужно установить на сервере и клиенте? 2)Как запретить доступ к базе по IP адрессу?Если это реально! Огромное спасибо!...

Вопрос № 42.812
Добрый день, Уважаемые Эксперты!
Вопрос такой: В run-time создаю компонент timage и загружаю в него фотку. есть также кнопка (код в приложении). Должна очистить (убрать) фотку с timage. Почему-то не работает. Выдает акцесс виолатион. В чем грабли?

Приложение:

Отправлен: 12.05.2006, 09:31
Вопрос задал: Дмитрий Александрович (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Дмитрий Александрович!

Если вы в run-time создаете компонент, то
1. Имя Вы ему привоили?
2. Владелец его - тот экземпляр формы, где Вы к компоненту обращаетесь?
3. Image.Picture.Graphic.Free;
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 3-ий класс)
Ответ отправлен: 12.05.2006, 09:40
Оценка за ответ: 3
Комментарий оценки:
Спасибо за ответ, но не помогло.
1. Имя присвоено.
2. Парент задействован
3. Не помогло.

Отвечает: Coupler
Здравствуйте, Дмитрий Александрович!
Попробуйте сделать вот так:
TImage(FindComponent('image1')).picture:=nil;
Имя image - image1, замените на то, что у вас. Я создавал image в designtime, но сомневаюсь, что у вас что-нить не пойдет. Если же все-таки не пойдет, смотрите создание компонента.
Ответ отправил: Coupler (статус: 10-ый класс)
Ответ отправлен: 12.05.2006, 10:20
Оценка за ответ: 5
Комментарий оценки:
Точно!!! Спасибо!

Отвечает: Злоумышленник
Здравствуйте, Дмитрий Александрович!
По-поводу предыдущео ответа: TImage(FindComponent('image1')).picture:=nil;
Всё равно ресурсы не освобождены (утечка памяти имеет место быть). Я не знаю, как Вы создаёте свой TImage, вот пример, как это корректно делать:
1) объявляется глобальная переменная
...
var
img: TImage;
...
2) создаётся TImage с присвоением указателя на него в img
...
procedure TForm1.Button1Click(Sender: TObject);
begin
img := TImage.Create(form1);
end;
...
3) когда надо, освобождаем
procedure TForm1.Button2Click(Sender: TObject);
...
begin
img.Free;
end;
Вот по такой схеме.
Ответ отправил: Злоумышленник (статус: 7-ой класс)
Ответ отправлен: 12.05.2006, 18:35
Оценка за ответ: 5
Комментарий оценки:
Учитывая сообщение на мини-форуме - очень дельный совет. Спасибо.


Вопрос № 42.829
Здраствуйте!
Некогда не работал с InterBase!Поэтому возникают вопросы:
1)Какие приложения,библиотеки,сервисы нужно установить на сервере и клиенте?
2)Как запретить доступ к базе по IP адрессу?Если это реально!
Огромное спасибо!
Отправлен: 12.05.2006, 12:07
Вопрос задал: chikanok (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Shcherbakov Anton
Здравствуйте, chikanok!
тебе просто нужно установиьт IB server & client всё остально и естественно делфи... всё остальное там есть
Ответ отправил: Shcherbakov Anton (статус: 1-ый класс)
Ответ отправлен: 12.05.2006, 12:15
Оценка за ответ: 3
Комментарий оценки:
Спасибо что откликнулись!Но мне нельзя нагромождать сервер ненужным ПО (Делфи).
Насколько я знаю для клинта нужна какая-то библиотека и приложение написаное на Делфях! А для сервака вроде только сам файл базы и установить сервис IBServer!

Отвечает: sir henry
Здравствуйте, chikanok!
1) На сервере просто устанавливаете сервер InterBase или FireBird. На клиент просто копируете библиотеку gds32.dll.
2) Если у Вас стоит WinXP SP2 Или Win2003, то Вы можете в персональном файрволе, который присутствует в этих системах закрыть доступ к своей машине, оставив только те IP, которым можно к серверу коннектится. Делается это на вкладке "Исключения", кнопка "Добавить порт", в открывшемся окне Вы указываете порт IB/FB (это 3050) и указываете какие IP будут иметь к этому порту доступ. Сам файрволл естественно нужно включить.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 13.05.2006, 15:34


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

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

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

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

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

В избранное