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