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

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


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

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

Выпуск № 490
от 01.06.2006, 23:35

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


Вопрос № 44347: Здраствуйте уважаемые эксперты. У меня соществует БД -> существует мной написанный сервер который берет данные с БД -> Мне требуется на уже созданную HTML страницу закидывать таблицы для просмотра, а также для добавления, удалени, и т.п.<b...
Вопрос № 44359: Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста. Мне нужно сделать класс-пункт меню, и к нему дочерний класс-пункт подменю. Очевидно, нужно наследовать делфишные стандартные классы. А я не знаю, какие и как с помощью этих классов организовыв...
Вопрос № 44377: Доброе время суток эксперты! Скажите как мне по простому сохранить record ф файл? У меня просто есть объявление типа TClient = packed record IP: String; Port: Integer; Relay: Boolean; BroadCast: Boolean; end; ...
Вопрос № 44382: Есть такая чудесная ф-ия в Delphi - LineDDA. Поскольку в Delphi она просто импортирована из gdi32.dll, то никакой хелпы по ней нет. Функции предаются 6 параметров: начальные и конечные координаты для линии (это уже 4шт.), указатель на ф-ию и...
Вопрос № 44398: Уважаемые эксперты!. Появилось необходимость написания программы для автоматического обзванивания по телефону абонентов. Есть БД с необходимой информацией ( номер телефона, фио, адрес, и т.д.) У ментя модем Zyxel omni 56k. Подскажите пожалюйста с чег...

Вопрос № 44.347
Здраствуйте уважаемые эксперты.
У меня соществует БД -> существует мной написанный сервер который берет данные с БД -> Мне требуется на уже созданную HTML страницу закидывать таблицы для просмотра, а также для добавления, удалени, и т.п.
Примерно как делается я знаю, т.е. через TDataSetPageProducer, одно понять не могу, как сделать там чтобы таблица формировалась? А может что нибудь еще есть, расмотрю все варианты, мне нужно это очень срочно.
Отправлен: 27.05.2006, 00:59
Вопрос задала: GidraIRi (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: chikanok
Здравствуйте, GidraIRi!
Я использовал компонент PageProducer.
В событие OnHTMLTag компонета TPageProducer проверить какой нашёлся тэг и в переменную ReplaceText послать ответ! В приложенни пример формирования таблицы! В данном примере в Html странице должен быть тег <#table> который замениться на таблицу.Все парамерты таблицы добавите сами.Для удаления надо обработать команду Delete с параметром id (Это всё в моём случае),а для добавления на станицу добавить форму для введения данных. Будут вопросы или что-то где-то непонятно пишите на внутреннию почту! Может вам подойдёт компонент TDataSetTableProducer или TQueryTableProducer с ними будет проше всего,но невсегда удобно!
Удачи!

Приложение:

---------
Главное желание,а там разберёмся!

Ответ отправил: chikanok (статус: 2-ой класс)
Ответ отправлен: 27.05.2006, 12:28
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо


Вопрос № 44.359
Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста. Мне нужно сделать класс-пункт меню, и к нему дочерний класс-пункт подменю. Очевидно, нужно наследовать делфишные стандартные классы. А я не знаю, какие и как с помощью этих классов организовывать меню. Заранее спасибо!!!
Отправлен: 27.05.2006, 06:30
Вопрос задал: Андрющенко Вячеслав Васильевич (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Проходящий Мимо
Здравствуйте, Андрющенко Вячеслав Васильевич!
Я когда-то реализовал динамическое создание главного меню и подпунктов на основе информации из базы данных, что позволяет использовать права доступа к фонкциям программы, динамически изменять надписи, изображения, привязку к коду и т.д. Для этого я создал свой клас, который происходит от TMenuItem:
TExecuteMenuItem = class(TMenuItem)
private
//можем добавить свои служебные поля
FParam: string;
FExec: string;
//или произвольные методы, которые должны быть реализованы в классе
function SetEventMenuClick(vParam: string): TNotifyEvent;
procedure OnAddBitmap(Sender: TObject);
procedure OnDelSelectRecords(Sender: TObject);
public
published
property Param: string read FParam write SetParam;
property Exec: string read FExec write SetExec;
end;
implementation
...

procedure LoadMenuFromDB(vForm: TForm);
var
//переменная нашего класса
vNewItem: TExecuteMenuItem;
//главное меню
vMainMenu: TMainMenu;

begin
//создаем главное меню, владелец - форма, переданная в качестве параметра,
//в проекте много форм, для каждой свое уникальное меню
vMainMenu := TMainMenu.Create(vForm);
vMainMenu.Name := 'MainMenu' + vForm.Name;
vMainMenu.Images := ImageList1;

//создаем в цикле пункты меню
//QMenu - компонент доступа к базе данных, в котором описаны пункты
//меню, можно заполнять програмно, если все известно
while not QMenu.EOF do
begin
//название пункта-владельца
vParent := trim(QMenu.FieldByName('PARENT').AsString);
//собственно создание пункта
vNewItem := TExecuteMenuItem.Create(vForm);
vNewItem.Caption := trim(QMenu.FieldByName('CAPTION').AsString);
//заполнение своих полей, если нужно
vNewItem.SetParam(trim(QMenu.FieldByName('PARAMS').AsString));
vNewItem.SetExec(trim(QMenu.FieldByName('EXEC').AsString));
//имя берем с базы
vNewItem.Name := trim(QMenu.FieldByName('CTRL').AsString);
vNewItem.Visible := true;
vNewItem.Enabled := true;
//номер иконки также с базы
vNewItem.ImageIndex := QMenu.FieldByName('IMAGE').AsInteger;
//комбинация клавиш
vNewItem.ShortCut := QMenu.FieldByName('SHORTKEY').AsInteger;
//здесь нужно сделать привязку к процедуре OnClick
vNewItem.OnClick := nil

//если нет владельца, создам основной пункл
//else - как подпункт
if (vParent = chNull) or
(TMenuItem(vForm.FindComponent(vParent)) = nil) then
vMainMenu.Items.Add(vNewItem)
else
TMenuItem(vForm.FindComponent(vParent)).Insert(0, vNewItem);
QMenu.Next;
end;

...

end;

В основному все, полный текст могу переслать на мыло
---------
Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 4-ый класс)
Ответ отправлен: 29.05.2006, 09:31


Вопрос № 44.377
Доброе время суток эксперты!
Скажите как мне по простому сохранить record ф файл?
У меня просто есть объявление типа
TClient = packed record
IP: String;
Port: Integer;
Relay: Boolean;
BroadCast: Boolean;
end;

а потом
var
Clients : array of TClient;

Можно ли по простому сохранить?
А то перебирая и сохраняя каждый не уобно. И если появлеются новый поля, то надо переписывать пару кусков кода. А у меня таких объявлений целая куча :-(
Отправлен: 27.05.2006, 11:35
Вопрос задал: Delphin (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Решетник Д
Здравствуйте, Delphin!
сделайте так:
var f: file of TClient;
tcl: TClient;
и если не ошибаюсь, читать так:
blockread(f, tcl, 1);
---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 6-ой класс)
Ответ отправлен: 27.05.2006, 11:52
Оценка за ответ: 2
Комментарий оценки:
[Error] u_frm_main.pas(143): E2155 Type 'TClient' needs finalization - not allowed in file type
На строке f: file of TClient;


Вопрос № 44.382
Есть такая чудесная ф-ия в Delphi - LineDDA. Поскольку в Delphi она просто импортирована из gdi32.dll, то никакой хелпы по ней нет.

Функции предаются 6 параметров: начальные и конечные координаты для линии (это уже 4шт.), указатель на ф-ию и некий LParam для передачи дополнительных данных.
Почему ф-ия DrawSpot не срабатывает?

AddPixel (моя процедура) точно работает - проверял.

Приложение:

Отправлен: 27.05.2006, 13:46
Вопрос задал: Сухомлин Кирилл Владимирович (статус: 7-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Сухомлин Кирилл Владимирович!
Вот здесь есть небольшой примерчик, как пользоваться LineDDA:
http://www.delphimaster.ru/books/978531800297/fragment.html
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 27.05.2006, 17:34


Вопрос № 44.398
Уважаемые эксперты!. Появилось необходимость написания программы для автоматического обзванивания по телефону абонентов. Есть БД с необходимой информацией ( номер телефона, фио, адрес, и т.д.) У ментя модем Zyxel omni 56k. Подскажите пожалюйста с чего начать и что для этого нужно.
Спасибо !!!
Отправлен: 27.05.2006, 14:52
Вопрос задал: Rdomr (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: chikanok
Здравствуйте, Rdomr!
Начинать надо с изучения TAPI(Telephony Application Programming Interfase), а также изучения принципов работы со звуковыми адаптерами. TAPI в Delphi посвяшена целая глава книги "Программирование Win32 API в Delphi",эту книгу можно скачать с сайта "www.natahaus.ru" или его зеркала "http://www.natahaus.biblioteka.ws", но лучше приобрести т.к с книгой идёт диск с примерами , а без них плохо!(если вы найдёте диск то напишите пожалуйста,я его давно ищу). По работе со звуковыми адаптерами в интернете много статей!Например"http://rsdn.ru/article/multimedia/winsnd.xml" или "http://rsdn.ru/article/multimedia/winmix.xml" ,они к сожелению для VC++,но основной принцип понятен! В статье "http://progg.net.ru/dir11/p3199.htm" написана почти готовая программа для дозвона и воспроизведения звука ,но опять же на С++. А также вам понадобиться генерировать голос (windows xp умеет разговаривать,но только по английский) здесь опять же инт ернет,может найдёте компоненту (для Visual Basic`a есть такой ActiveX, наверное можно перенести!).
Пишите мне на емаил, хочу поучаствовать в создании данного приложения!
Rusfaq@74mail.ru
---------
Главное желание,а там разберёмся!
Ответ отправил: chikanok (статус: 2-ой класс)
Ответ отправлен: 28.05.2006, 12:00


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

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

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

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

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

В избранное