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

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


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

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

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

Выпуск № 329
от 19.12.2005, 19:12

Администратор:Калашников О.А.
В рассылке:Подписчиков: 239, Экспертов: 52
В номере:Вопросов: 11, Ответов: 42


Вопрос № 31407: Здраствуйте эксперты. у меня таой вопрос. Я хочу прочитывая данные с икселевкого файла копирывать в свою БД.Это я сделал, но вот теперь то, что мне очень нужно. Я хочу если такой элемент в моей БД есть то его не копировать или если бы...
Вопрос № 31418: Доброе время суток посоветуйте плиз какую книгу(в эл-ом виде) можно почитать по Делфи5 человеку который вообще в этом полнейший чайник...
Вопрос № 31435: Ув Эксперты! У меня проблема уже какую неделю ломаю голову помогите мнне пожадуйста. мне нужно от 1 до 10 беспорядочно раскидать числа с randomize не получается числа повторяются помогите хелп с/у Ера заранее благодарен....
Вопрос № 31451: Кто знает как писать на ассемблере в Delphi? Кто может показать пример? Кто знает в каких книгах искать на эту тему? ...
Вопрос № 31454: Здравствуйте уважаемые эксперты. Вопрос о сообщениях Windows: TForm1 = class(TForm) procedure ReceiveMessage (var Msg: TMessage); message WM_DEVICECHANGE; {что значит message WM_DEVICECHANGE после объявления процедуры?} ... ...
Вопрос № 31466: Здравствуйте, эксперты! Пушу на С++, но вот подкинули кое что и на Делфи... Вопрос: можно объявить переменную с начальным значением? Например на С это так - int i(100); double fl(15.354); и т.д. Т.е. чтобы не перепри...
Вопрос № 31481: Подскажите метод ипользования сканера документов, желательно через локальную сеть....
Вопрос № 31484: Здравствуйте, вопрос такой, создаю Com-объект (объект автоматизации), как мне переопределить конструктор. Пробовала просто переопределить Create (без параметров), но проблема в том, что он не вызывается при создании этого объекта в клиентском приложе...
Вопрос № 31485: Можно ли библиотеку dll использовать как хранилище паролей, которое может постоянное меняться? Если да, то привелите, пожалуйста, работающий пример, а то я пыталься что-то сделать, и ничего не работает. Заранее спасибо....
Вопрос № 31486: Можно ли библиотеку dll использовать как хранилище паролей, которое может постоянное меняться? Если да, то привелите, пожалуйста, работающий пример, а то я пыталс я что-то сделать, и ничего не работает. Заранее спасибо....
Вопрос № 31487: Еще раз, здравствуйте! Вот такой вопрос: Нужен CList! Есть ли подобная штука в Делфи? Чтобы можно было добавить в голову элемент, в хвост элемент, убрать из головы / хвоста элемент... а навигация была как в массиве, так же ну...

Вопрос № 31.407
Здраствуйте эксперты.
у меня таой вопрос.
Я хочу прочитывая данные с икселевкого файла копирывать
в свою БД.Это я сделал, но вот теперь то, что мне очень нужно.
Я хочу если такой элемент в моей БД есть то его не копировать или если была задан параметр, сообщавший если такой такой элемент есть,то значение (например количество запчестей от поршня) прибавить к уже существующему значению.
----
Для пояснения.
Моя программа оперирует с БД запчестей.
Я её уже на большую половину закончил и теперь мне надо присабачить функцию,которая при копирования названий запчастей и количества этих запчастей не заменяла существующий уже такой элемент в моей БД, а прибавляла количество этих запчастей к уже существующему количество элементов в моей БД.
Заранее спасибо.
Отправлен: 13.12.2005, 19:14
Вопрос задал: newinfo2005 (статус: 5-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Архангельский Андрей Германович
Здравствуйте, newinfo2005!

Вариантов два:
1) Перед вставкой КАЖДОЙ записи сделать запрос на ее наличие, и если такая есть то сделать update, в противном случае вставку.
2) Сделать временную таблицу, переписать туда существующую и дописать новую
После чего сделать запрос группирующий записи по названию деталей и суммирующий по количеству. Результат запроса положить в основную таблицу

Есть конечно и другие способы, но нужна более подробная информация
Ответ отправил: Архангельский Андрей Германович (статус: Студент)
Отправлен: 13.12.2005, 20:11

Отвечает: sir henry
Здравствуйте, newinfo2005!
Вам нужен для этого столбец, в котором хранится уникальный идентификатор этой запчасти. Причем как в Вашей БД, так и в экселевском файле. Для каждой записи Вы считываете идентификатор, потом ищете его в БД. Если идентификатор найден, плюсуете количество к тому, которое уже есть, если не найден, то просто добавляете строуку в БД с этим идентификатором и количеством.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 14.12.2005, 05:06


Вопрос № 31.418
Доброе время суток
посоветуйте плиз какую книгу(в эл-ом виде) можно почитать по Делфи5 человеку который вообще в этом полнейший чайник
Отправлен: 13.12.2005, 22:51
Вопрос задал: Sexy (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: nimoid
Здравствуйте, Sexy!
Ну чайники тоже бывают разные - кто-то легко одного автора воспримет и поймет сразу, кто-то нифига непоймет.

1. Библия делфи
2. Делфи 6 для чайников
3. Делфи быстрый старт

Ищи в интернете через поисковики - книг вообще навалом. Ну если уж не найдешь, могу выложить в инет - пиши на мыл если что.
---------
Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и в перед... )
Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 13.12.2005, 23:49

Отвечает: Denisss
Здравствуйте, Sexy!
http://www.wmate.ru/ebooks/cat14/ - особенно рекомендую Delphi 5 - Руководство для разработчика (2 Тома + Если поискать по инету, то еще и примеры к этой книге можно найти)
http://www.delphikingdom.com/library/ - тут ничего особо рекомендовать не буду, но есть неплохие книги для начинающих.
http://www.ruhelp.org/pages/det.php?id=7&l=B - Delphi 7 для начинающих. Понимаю, что не 5-я версия, но для начинающих эти версии почти одинаковы.
Ответ отправил: Denisss (статус: Специалист)
Отправлен: 14.12.2005, 00:41

Отвечает: sir henry
Здравствуйте, Sexy!
Именно для Дельфи 5 я не знаю, а вообще по Дельфи пойдет "Иллюстрированный самоучитель по Delphi 7 для начинаюших". Эта книга валяется по всему инету, просто сделайте запрос в Яндексе или Гугле.
Книжки по Дельфи были еще здесь:
http://www.soobcha.ru/rushelp
Правда не знаю, работает сейчас этот раздел или нет. Там периодически какие-то проблемы возникали.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 14.12.2005, 05:12

Отвечает: Vbhjndjhtw
Здравствуйте, Sexy!
На этом сайте есть электронная книга http://www.everestcenter.ru/ebook.php - весит 1,2 мб.

---------
Бороться и искать, найти и перепрятать!
Ответ отправил: Vbhjndjhtw (статус: 7-ой класс)
Отправлен: 14.12.2005, 06:55

Отвечает: Hdd
Здравствуй, Sexя!
Ко мне на мыло кинь свой майл: я те несколько хороших книжачек пришлю!!! ;)
hdd27@yandex.ru
Ответ отправил: Hdd (статус: 1-ый класс)
Отправлен: 14.12.2005, 07:28


Вопрос № 31.435
Ув Эксперты!
У меня проблема уже какую неделю ломаю голову помогите мнне пожадуйста. мне нужно от 1 до 10 беспорядочно раскидать числа с randomize не получается числа повторяются помогите хелп
с/у Ера заранее благодарен.
Отправлен: 14.12.2005, 10:16
Вопрос задал: ERA (статус: Посетитель)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Boriss
Здравствуйте, ERA!
Немного не понятна причина затруднений: проще всего случайным образом ПЕРЕСТАВИТЬ элементы массива от 1 до 10.
---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Отправлен: 14.12.2005, 10:43

Отвечает: Zubex
Здравствуйте, ERA!
Надо просто проверять есть ли такое значение или нет и в зависимости от этого вставлять или нет.
Пример в приложении. Положите на форму TMemo и TBitBtn, скопируйте код и посмотрите что получится.
Удачи!

Приложение:

---------
Если не знаешь что сказать - лучше промолчи...

Ответ отправил: Zubex (статус: 3-ий класс)
Отправлен: 14.12.2005, 10:46
Оценка за ответ: 5
Комментарий оценки:
Спасибо, Эксперты Отлично работает

Отвечает: sir henry
Здравствуйте, ERA!
Вам помочь голову сломать? Это мы запросто. :)
Дело в том, что связка Randomize - Random, это генератор не случайных, а квазислучайных чисел. В компьютере вообще ничего случайного нет - голая логика и все. Мало того, случайные числа - это не тоже самое, что и НЕПОВТОРЯЮЩИЕСЯ. Пожалуйста. постарайтесь это понять. Если с генерацией все понятно и ее можно воспроизвести какой-то функцийей, то неповторяемость - это исключительно Ваша проблема.
Поскольку с генерацией Вы уже разобрались, то осталось проверять, есть такое число или нету в списке.
Допустим у Вас есть массив, куда Вы складываете числа. При генерации каждого числа, Вы просматриваете всеь массив, есть ли там уже такое-же число, если есть - генерируете заново в ту-же ячейку, если нет - генерируете следующую ячейку.
Пример не изящный, а просто для иллюстрации.

Приложение:

Ответ отправил: sir henry (статус: Академик)
Отправлен: 14.12.2005, 10:55
Оценка за ответ: 5
Комментарий оценки:
Sir Henry, Огромное спасибо работает отлично точно нужно!

Отвечает: Лучников Юрий Владимирович
Здравствуйте, ERA!

Создайте пустое множество, сгенерируйте число, запишите его, втолкните его в множество, далее генериоуйте следующее число, делайте проверку, есть ли оно в множестве (есть ли повтор), если нет, записывайте его, снова толкайте его в множество, иначе перебрасывайте, и т.д.
Ответ отправил: Лучников Юрий Владимирович (статус: 4-ый класс)
Отправлен: 14.12.2005, 12:11

Отвечает: Schmak
Здравствуйте, ERA!
Можно завести массив boolean такой же размерности и отмечать в нём использованные числа. В данном ниже примере True означает можно использовать, False - нельзя.

Приложение:

---------
Не всё то Windows, что висит!

Ответ отправил: Schmak (статус: Студент)
Отправлен: 14.12.2005, 14:29

Отвечает: Татьяна
Здравствуйте, ERA!
Это чистой воды перестановки, хотя вам уже дали вариант решения, хочу предлжить вам свой вариант, просто потому-что он у меня уже был и как мне кажется, более явно дает понять, что работаем мы именно с перестановками

Приложение:

---------
Нет ничего невозможного!!!

Ответ отправила: Татьяна (статус: 10-ый класс)
Отправлен: 14.12.2005, 16:00

Отвечает: Ерёмин Андрей
Здравствуйте, ERA!
Ну так первое, что напрашивается - перед записью числа в массив проверять, есть-ли уже такое число в массиве... Вот исходник. Создаётся массив из 10 элементов и в него забрасываются числа от 1 до 10 случайным образом. Затем всё выводится в Memo.

procedure TForm1.Button1Click(Sender: TObject);
Var A: Array[1..10] Of Integer; I,J,T: Integer; S: Boolean;
Label 1;
begin
Randomize;

For I:=1 To 10 Do
A[I]:=-1;

For I:=1 To 10 Do
Begin
1:
T:=Random(11);
S:=True;
For J:=1 To I-1 Do
If A[J] = T Then S:=False;
If S = True Then A[I]:=T Else GoTo 1;
End;

For I:=1 To 10 Do
Memo1.Lines.Add(IntToStr(A[I]));
end;

---------
В то время как остальные процессоры уже закончили работу, процессоры VIA продолжают работать, работать и работать! :))
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 14.12.2005, 17:35


Вопрос № 31.451
Кто знает как писать на ассемблере в Delphi? Кто может показать пример? Кто знает в каких книгах искать на эту тему?
Отправлен: 14.12.2005, 12:37
Вопрос задал: Mehanik (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, Mehanik!
Если честно, я в книгах не видел, чтобы излагали как писать в Дельфи на ассемблере. Попадались только статьи на www/ delphimaster.ru или www.delphikingdom.com, точно не помню.
Если говорить в общем, то ассемблерная вставка начинается служебным словом asm, а заканчиваеися end. Между ними пишутся обычные ассемблерные комманды, тут можно любым учебником по ассемблеру пользоваться.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 14.12.2005, 13:07

Отвечает: Vbhjndjhtw
Здравствуйте, Mehanik!
Кинь мне письмо на rdo04@bk.ru
Я тебе вышлю файлик .
---------
Бороться и искать, найти и перепрятать!
Ответ отправил: Vbhjndjhtw (статус: 7-ой класс)
Отправлен: 14.12.2005, 13:10
Оценка за ответ: 5

Отвечает: nimoid
Здравствуйте, Mehanik!

Есть в наличии:

1. Использование ассемблера в Дельфи (© Guido Gybels, January-February 2001. © Anatoly Podgoretskys, 2002, Authorized Russian Translation.)

2. BASM Уроки для начинающих (© Dennis Chistensen, 2003. © Anatoly Podgoretsky, 2003, Russian translations

Если надо, пиши на мыл - скину или выложу в инет (в архиве около 200 кб).
---------
Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и в перед... )
Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 14.12.2005, 15:23
Оценка за ответ: 5

Отвечает: REFERI
Здравствуйте, Mehanik!
Могу скинуть мануал под названием "Использование ассемблера в Delphi"
Вес - 54 кб в архиве...
Если надо - пишите, вышлю...

---------
Не судите, да не судимы будете...
Ответ отправил: REFERI (статус: Студент)
Отправлен: 14.12.2005, 15:44
Оценка за ответ: 4

Отвечает: Ерёмин Андрей
Здравствуйте, Mehanik!
Для Ассемблера в Delphi существует следующая конструкция:

asm
{код}
end;


Излагать команды, которые используются в Ассемблере, естественно, не буду, т.к. это другой разговор. В книгах по Delphi про это не пишут. Ассемблер - сложный язык и с Delphi он практически не связан. Пример - что именно вас интересует?
---------
В то время как остальные процессоры уже закончили работу, процессоры VIA продолжают работать, работать и работать! :))
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 14.12.2005, 17:39
Оценка за ответ: 4


Вопрос № 31.454
Здравствуйте уважаемые эксперты. Вопрос о сообщениях Windows:
TForm1 = class(TForm)
procedure ReceiveMessage (var Msg: TMessage); message WM_DEVICECHANGE;
{что значит message WM_DEVICECHANGE после объявления процедуры?}
...

procedure TForm1.ReceiveMessage(var Msg: TMessage);
begin
if Msg.WParam=32772 then
ShowMessage('CD-ROM Open');
if Msg.WParam=32768 then
ShowMessage('CD-ROM Close');
end;
{Как юзать эту процедуру?}
Отправлен: 14.12.2005, 13:56
Вопрос задал: Teapot (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Samum
Здравствуйте, Teapot!
message WM_DEVICECHANGE означает, что форма будет обрабатывать сообщение windows WM_DEVICECHANGE в процедуре ReceiveMessage.
Само сообщение указывает приложению (или драйверу устройства) на то, что произошло изменение в аппаратной части машины. Конкретное событие описавается в параметрах сообщения - в данном случае процедура проверяет изменение положения лотка CD привода.


---------
Если бы программистам за их ошибки отрывали части тела, то в конце концов им пришлось бы использовать голову!
Ответ отправил: Samum (статус: Специалист)
Отправлен: 14.12.2005, 15:21
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, Teapot!
1. Это значит, что форма обрабатывает сообщения к ней (WM_DEVICECHANGE) именно этой процедурой.
2. В эту процедуру посылается параметр, одно из полей TMsg (TMsg.WParam)/ Если параметр имеет значение 32772, то Выдается сообщение на экран CD-ROM Open, а если 32768, то сообщение CD-ROM Close.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 14.12.2005, 16:35
Оценка за ответ: 5

Отвечает: Ерёмин Андрей
Здравствуйте, Teapot!
WM_XXXXXXXXXXX обозначает привязку процедуры к указанному сообщению Windows. Как только сообщение будет получено программой, тут же управление будет передаваться процедуре. Ловить можно любые события. Остальное - дело техники.
---------
В то время как остальные процессоры уже закончили работу, процессоры VIA продолжают работать, работать и работать! :))
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 14.12.2005, 17:41

Отвечает: Ataman N. N.
Здравствуйте, Teapot!
WM_DEVICECHANGE - сообщение посылаемое системой при изменении состояния устройств.
В данной процедуре отлавливается открытие и закрытие CD-ROM-а.
Ответ отправил: Ataman N. N. (статус: 4-ый класс)
Отправлен: 14.12.2005, 19:30


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

Пушу на С++, но вот подкинули кое что и на Делфи...
Вопрос: можно объявить переменную с начальным значением?
Например на С это так -
int i(100);
double fl(15.354);
и т.д.
Т.е. чтобы не переприсваивать её уже в теле...
Отправлен: 14.12.2005, 15:23
Вопрос задал: Zitz (статус: 2-ой класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: nimoid
Здравствуйте, Zitz!

На сколько я знаю, то такое возможно только для глобальных переменных.

Пример:
var
str: string = 'строка';

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(str);
end;
---------
Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и в перед... )
Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 14.12.2005, 15:34
Оценка за ответ: 5

Отвечает: Bochvarov NikB
Здравствуйте, Zitz!
const
a: integer = 200;
b: single = 3.1415926;
begin
b:=b+a;
inc(a,4);
end;

НО и локалние и глобалние переменни - место в памят одно и тоже (если нсколко екземпляров одного обекта, все они ползуют одной переменной - сделай свой пример и увидиш:)
procedure tObjMy.Bababa;
const
a: integer = 5;
begin
a:=a+3;
end;

...
x:= tObjMy.Create;
x.Bababa;
y:= tObjMy.Create;
y.Bababa;
...
Ответ отправил: Bochvarov NikB (статус: 4-ый класс)
Отправлен: 14.12.2005, 15:43
Оценка за ответ: 5

Отвечает: REFERI
Здравствуйте, Zitz!
Делать это можно только с глобальными переменными.
Глобальные переменные можно инициализировать в их объявлениях, например,
var i: integer = 7;
fl: double = 3*34/3.14;
Локальные переменные инициализировать нельзя.
Удачи в кодинге!
---------
Не судите, да не судимы будете...
Ответ отправил: REFERI (статус: Студент)
Отправлен: 14.12.2005, 15:58
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, Zitz!
Можно, только немного по другому:
Var
i: integer = 100;
fl: double = 15.354;
А Дельфи какой версии? В некоторых это не работало и приходилось подобные штуки объявлять в разделе констант, но это все равно были переменные. :)
Ответ отправил: sir henry (статус: Академик)
Отправлен: 14.12.2005, 16:39
Оценка за ответ: 5

Отвечает: Denisss
Здравствуйте, Zitz!
1. Можно присваивать значение глобальным переменным:
var
  i: Integer = 100;


2. Можно также присваивать глобальным и локальным константам (постоянным), но обязятельно с указанием их типа:
const
  i: Integer = 100;


В некоторых случаях это может не заработать, тогда надо выполнить следующие действия:
1. Зайти в меню "Project"-"Options" (Ctrl+Shift+F11);
2. Зайти на закладку "Compiler"
3. Поставить галочку напротив "Assignable typed constants", чтобы можно было использовать константы в качестве переменных.
Ответ отправил: Denisss (статус: Специалист)
Отправлен: 15.12.2005, 16:16


Вопрос № 31.481
Подскажите метод ипользования сканера документов, желательно через локальную сеть.
Отправлен: 14.12.2005, 17:30
Вопрос задал: Negruzzi Cristian (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ataman N. N.
Здравствуйте, Negruzzi Cristian!
Насколько я знаю, то сканер никак нельзя использовать по сети. Сам когда то хотел сканировать "чужим" сканером, но увы.
Ответ отправил: Ataman N. N. (статус: 4-ый класс)
Отправлен: 14.12.2005, 19:25

Отвечает: Denisss
Здравствуйте, Negruzzi Cristian!
Ищите примеры и документацию по использованию TWAIN.
Через локальную сеть можно так:
На компьютере, где установлен сканер пишете серверную часть. Эта часть будет следить за обращением к сканеру, сканировать и передавать отсканированное по сети.
Для клиентов пишете клиентскую часть. Эта часть будет отсылать запросы на серверную часть (указывать разные параметры сканирования) и получать отсканированное от серверной части.
Единственное "НО" (хотя может и не единственное): Вам придется поискать документы и примеры по использованию TWAIN без отображения TWAIN-диалога. Иначе придется клиентам бегать на сервер, чтобы устанавливать параметры сканирования вручную при каждом сканировании.
Ответ отправил: Denisss (статус: Специалист)
Отправлен: 15.12.2005, 16:07
Оценка за ответ: 5


Вопрос № 31.484
Здравствуйте, вопрос такой, создаю Com-объект (объект автоматизации), как мне переопределить конструктор. Пробовала просто переопределить Create (без параметров), но проблема в том, что он не вызывается при создании этого объекта в клиентском приложении.
Отправлен: 14.12.2005, 17:54
Вопрос задала: Татьяна (статус: 10-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Татьяна!
COM-объект Вы создаете на основе интерфейса?
А Вы уверены, что у интерфейсов есть Create? :)
Если Вы создаете объект смешаного типа, т.е. наследник и TObject и IUnknown, то Create у него работает точно так же как у любого наследника TObject, т.е. может быть спокойно переопределен.
Или может я не понял Вашего вопроса?
Ответ отправил: sir henry (статус: Академик)
Отправлен: 14.12.2005, 18:53


Вопрос № 31.485
Можно ли библиотеку dll использовать как хранилище паролей, которое может постоянное меняться? Если да, то привелите, пожалуйста, работающий пример, а то я пыталься что-то сделать, и ничего не работает. Заранее спасибо.
Отправлен: 14.12.2005, 18:14
Вопрос задал: Segor (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Segor!
DLL - это хранилище функций, а не данных. Придумайте что-нибудь менее экстравагантное.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 14.12.2005, 18:54

Отвечает: Golden Spider
Здравствуйте, Segor!

Нет нельзя. Во первых Dll это библиотека функций, а во вторых она компилируется толко один раз и изменятся не может (Хотя вы можете сохранить в ней данные, например эти данные могут возвращаться какой-либо функциеё).
---------
Семь раз проверь, один раз откомпилируй!
Ответ отправил: Golden Spider (статус: 3-ий класс)
Отправлен: 15.12.2005, 22:05


Вопрос № 31.486
Можно ли библиотеку dll использовать как хранилище паролей, которое может постоянное меняться? Если да, то привелите, пожалуйста, работающий пример, а то я пытался что-то сделать, и ничего не работает. Заранее спасибо.
Отправлен: 14.12.2005, 18:15
Вопрос задал: Segor (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ataman N. N.
Здравствуйте, Segor!
К сожалению такое сделать невозможно. dll-таже программа. Если вы написали программу, которая может компилировать библиотеки, то никаких вопросов, а иначе....
Ответ отправил: Ataman N. N. (статус: 4-ый класс)
Отправлен: 14.12.2005, 19:23

Отвечает: Boriss
Здравствуйте, Segor!
В принципе, можно, но вряд ли это удобно:

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Отправлен: 15.12.2005, 10:38

Отвечает: Denisss
Здравствуйте, Segor!
Чисто теоретически, это возможно, если сохранять в ресурсы библиотеки. Но для этого Вам придется изучить не только методы шифрации/дешифрации, но и структуру PE-файлов.
Для хранения паролей надо использовать базу данных (не обязательно готовую - можно и самому написать) с защитой этой базы паролем.
Как самый простой вариант, могу предложить использовать ADO.
Ответ отправил: Denisss (статус: Специалист)
Отправлен: 15.12.2005, 15:32


Вопрос № 31.487
Еще раз, здравствуйте!

Вот такой вопрос:
Нужен CList! Есть ли подобная штука в Делфи?
Чтобы можно было добавить в голову элемент, в хвост элемент,
убрать из головы / хвоста элемент...
а навигация была как в массиве, так же нужно узнавать его размер...
В листе будут классы (структуры)...
Отправлен: 14.12.2005, 18:23
Вопрос задал: Zitz (статус: 2-ой класс)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Lector
Здравствуйте, Zitz!
юзайте TStringList. Он может хранить любые объекты. Добавление/удаление записей делается очень легко.
---------
Хочешь помочь старику - сделай вместо него.
Хочешь помочь новичку - сделай вместе с ним.
Хочешь помочь мастеру - отойди и не мешай,
а хочешь помочь дураку - сам дурак.
Ответ отправил: Lector (статус: Студент)
Отправлен: 14.12.2005, 18:34
Оценка за ответ: 5

Отвечает: Татьяна
Здравствуйте, Zitz!
Все просто, думаю вам подойдет TList - как раз он может хранить объекты любого типа (точнее указатели на эти объекты)
---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 10-ый класс)
Отправлен: 14.12.2005, 18:37
Оценка за ответ: 5

Отвечает: Ataman N. N.
Здравствуйте, Zitz!
В Delphi есть класс TList. Функциональность такая же как и CList.
Индекс объекта(елемента) можна узнать используя функцию IndexOf().
Ответ отправил: Ataman N. N. (статус: 4-ый класс)
Отправлен: 14.12.2005, 18:44
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, Zitz!
Если нужен невизуальный компонент, то есть TStringList. У него в свойстве Strings хранятся некие строки, а в свойстве Objects - любые объекты. Обращатся можно по индексу, как у массива. Количество узнаем в свойстве Count.
Var
i: integer;
sl: TStringList;
Begin
sl:=TStringList.Create; {Создаем объект}
For i:=0 To 9 Do {Заполняем чем-нибудь}
Begin
sl.Add('Какая-нибудь строковая лабуда'+IntToStr(i));
sl.AddObject(Сюда присваиваем какой-нибудь объект);
End;
Ответ отправил: sir henry (статус: Академик)
Отправлен: 14.12.2005, 19:08
Оценка за ответ: 5

Отвечает: Лучников Юрий Владимирович
Здравствуйте, Zitz!
Да есть. Название класса - TList.
Ответ отправил: Лучников Юрий Владимирович (статус: 4-ый класс)
Отправлен: 14.12.2005, 20:27

Отвечает: Schmak
Здравствуйте, Zitz!
Называется такой класс TList. Основные методы Add, Delete, Clear, Insert я думаю труда не вызовут. Также для хранения строк можно воспользоваться TStringList. Методы подобны.
---------
Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Студент)
Отправлен: 15.12.2005, 05:46


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное