Вопрос № 84082: Здравстуйте!
Подскажите пожалуйста, как можно узнать количество элементов перечеслимого типа?
Заранее спасибо....Вопрос № 84151: Подскажите на примере, как отправить файл на ftp. Заранее спасибо...Вопрос № 84158: Помогите отправить файл по ftp (host - pocket.h16.ru) в директорию 'WWW'. Заранее спасибо...Вопрос № 84201: Здравствуйте Уважаемые эксперты!Вопрос у меня по StringGrid.Что бы сделать редактируемый StringGrid, надо в опциях (Options) поставить goEditing в True.А
можно ли делать редактируемым допустим только столбец или строку или только выбранную ячейку?...Вопрос № 84208: Доброго времени суток!
У меня возник вопрос по сетевому програмированию.
Каким образом передавать кпримеру данные своего типа ?!
Например какой-нить record или например масив.
спс.
...Вопрос № 84209: Здравствуйте, уважаемые эксперты!
Как ПРОГРАМНО узнать битрейт у любого MP3 файла?...Вопрос № 84220: Здраствуйте эксперты.
У меня такой вопрос, в процедуре OnClose формы я вывожу сообщение: "Вы действительно хотите выйти?" и варианты ответа Да/Нет (код в приложении). Подскажите пожалуста как сделать так что бы при ответе "нет"...
Вопрос № 84.082
Здравстуйте!
Подскажите пожалуйста, как можно узнать количество элементов перечеслимого типа?
Заранее спасибо.
Отправлен: 25.04.2007, 08:12
Вопрос задал: _porodox_ (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Gh0stik
Здравствуйте, _porodox_!
Вот предлагаю Вам такой вариант решения проблемы.
Необходимо описать пользовательские типы например так: type UserSet=(elem1,elem2,elem3,elem4,elem5);
UserSets=set of UserSet;
Далее описываем переменную соответствующего типа var x:UserSets;
А вот сама функция которая подсчитывает количество элементов множества: function GetSetCount(uset: UserSets): Integer;
var i: UserSet;
begin
result:=0;
for i:= Low(i) to High(i) do
if i in uset then inc(result);
end;
И конечно же применение функции в программе: procedure TForm1.Button2Click(Sender: TObject);
begin
x:=[elem1,elem4,elem2,elem5];
showmessage(inttostr(GetSetCount(x)));
end;
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 25.04.2007, 10:32 Оценка за ответ: 5
Отвечает: Georg
Здравствуйте, _porodox_!
Если X переменная перечислимого типа, то Ord(Low(X))- порядковый номер первого эламента =0, а Ord(High(X))- порядковый номер последнего элемента, а их число естественно на один больше.
Удачи!
Ответ отправил: Georg (статус: 3-ий класс)
Ответ отправлен: 25.04.2007, 14:08 Оценка за ответ: 5
Вопрос № 84.151
Подскажите на примере, как отправить файл на ftp. Заранее спасибо
Отправлен: 25.04.2007, 15:25
Вопрос задал: Bee.line (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Bingo
Здравствуйте, Bee.line!
Значит, для создания собственного FTP клиета Вам понадобиться TIdTrivialFTP на панели Indy Clients. Принцип работы программы несложный. Запускать(т.е. делать активным) его нужно при создании окна:
-----
procedure TForm1.FormCreate(Sender: TObject);
begin
idtrivialftp1.Active:=true;
end;
----
Для загрузки файла НА сервер нужно разместить на форме кнопку и TOpenDialog. В TEdit будет храниться новое название файла FTP сервере или путь. При нажатии происходит следующее:
----
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if opendialog1.Execute then
idtrivialftp1.Put(opendialog1.filename ,edit1.text)
end;
----
Для того, чтобы скачать файл с сервера, в TEdit необходимо указать имя файла на сервере, в TSaveDialog - место, куда нужно сохранить файл на локальном компьютере.
----
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if savedialog1.Execute then
idtrivialftp1.Get(edit1.Text,savedialog1.FileName);
end;
----
Удачи!
--------- C темным пивом в светлое будущее!
Ответ отправил: Bingo (статус: 4-ый класс)
Ответ отправлен: 25.04.2007, 21:00
Вопрос № 84.158
Помогите отправить файл по ftp (host - pocket.h16.ru) в директорию 'WWW'. Заранее спасибо
Отправлен: 25.04.2007, 16:04
Вопрос задал: Bee.line (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Bingo
Здравствуйте, Bee.line!
Как реализовывать подобного рода программы, я уже объяснил в Вашем предыдущем вопросе № 84151. Теперь осталось уточнить некоторые моменты. Нужно указать в свойстве Host имя ftp сервера:
----
procedure TForm1.FormCreate(Sender: TObject);
begin
idtrivialftp1.Host:='pocket.h16.ru';
idtrivialftp1.Active:=true;
end;
Необходимо подкорректировать событие, когда отправляете файл на сервер:
-----
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
if opendialog1.Execute then
idtrivialftp1.Put(opendialog1.filename ,'www'+edit1.text);
end;
-----
Ну вот, теперь все файлы будут кидаться в папку www, a edit1.text - это новое имя файла на удаленном компьютере. По идее, проблем возникнуть не должно, разве что только с сервером.
Удачи!
--------- C темным пивом в светлое будущее!
Ответ отправил: Bingo (статус: 4-ый класс)
Ответ отправлен: 25.04.2007, 21:36 Оценка за ответ: 3 Комментарий оценки: Уважаемый Bingo, а ка насчет аутентификации на сервере, я так понимаю, что TIdTrivialFTP не предусматривает этого???
Вопрос № 84.201
Здравствуйте Уважаемые эксперты!Вопрос у меня по StringGrid.Что бы сделать редактируемый StringGrid, надо в опциях (Options) поставить goEditing в True.А можно ли делать редактируемым допустим только столбец или строку или только выбранную ячейку?
Отправлен: 25.04.2007, 20:01
Вопрос задал: GAZOT (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, GAZOT!
Можно конечно. Только не стандартными средствами, а ручками :-) Обрабатываем событие OnSelectCell() и делаем всё, что нам нужно. См. пример в приложении. Редактируемы только строки с чётными номерами. Удачи!
Приложение:
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Крылов Александр Владимирович
Здравствуйте, GAZOT!
Нет, такого свойства нет. Вашу задачу можно реализовать в обработчике событий OnSelectCell, в который в качестве параметров передаются номера строки и стобца выделяемой ячейки и уже оттуда менять значение свойства goEditing
Ответ отправил: Крылов Александр Владимирович (статус: 3-ий класс)
Ответ отправлен: 25.04.2007, 20:40 Оценка за ответ: 3 Комментарий оценки: можно было бы и пример привести
Вопрос № 84.208
Доброго времени суток!
У меня возник вопрос по сетевому програмированию.
Каким образом передавать кпримеру данные своего типа ?!
Например какой-нить record или например масив.
спс.
Отправлен: 25.04.2007, 21:38
Вопрос задал: Даниил (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: PGM
Здравствуйте, Даниил!
Для сокетов из Дельфи (TClientSocket/TServerSocket) - использовать не SendText, а SendBuf с указанием размера буфера, аналогично ReceiveBuf для приема.
P.S. А вообще-то хорошо было бы уточнить каким именно механизмом (сокетами Дельфи, WinSock API или какими-то готовыми компонентами) вы пользуетесь, чтобы ответ был конкретным по вашей теме.
Ответ отправил: PGM (статус: 5-ый класс)
Ответ отправлен: 26.04.2007, 11:20 Оценка за ответ: 4 Комментарий оценки: Спсибо за помощь, короткий и ясный ответ!
Вопрос № 84.209
Здравствуйте, уважаемые эксперты!
Как ПРОГРАМНО узнать битрейт у любого MP3 файла?
Отправлен: 25.04.2007, 21:40
Вопрос задал: Win2k (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: PGM
Здравствуйте, Win2k!
Гляньте вот эти пару ссылок, надеюсь поможет:
http://web.1asphost.com/ufogroup/forum/forum_posts.asp?TID=80&get=last -- Структура заголовка MP3
http://www.developeru.info/PermaLink,guid,6ac0aff9-0223-4a05-94ac-995feaac683a.aspx
Работа с заголовком (правда на C#)
Ответ отправил: PGM (статус: 5-ый класс)
Ответ отправлен: 26.04.2007, 11:15 Оценка за ответ: 5 Комментарий оценки: Спасибо. Очень полезная информация.
Вопрос № 84.220
Здраствуйте эксперты.
У меня такой вопрос, в процедуре OnClose формы я вывожу сообщение: "Вы действительно хотите выйти?" и варианты ответа Да/Нет (код в приложении). Подскажите пожалуста как сделать так что бы при ответе "нет" форма не закрывалась?
Спасибо за ответы.
Отвечает: Устинов С.Е.
Здравствуйте, Иван Ивановввв!
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if MessageDlg('Вы действительно хотите выйти?', mtConfirmation, [mbYes,mbNo], 0) = mrNo then Action:=caNone;
end;
Ответ отправил: Устинов С.Е. (статус: Практикант)
Ответ отправлен: 25.04.2007, 23:11 Оценка за ответ: 5 Комментарий оценки: Спасибо, это именно то что мне нужно.
Отвечает: Necromancer
Здравствуйте, Иван Ивановввв!
Это лучше делать в обработчике события OnCloseQuery. Тогда код будет следующим:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := True;
if MessageDlg('Вы действительно хотите выйти?',mtConfirmation,[mbYes,mbNo],0)
= mrNo then CanClose := False;
end;
--------- Никогда не сдавайся, даже если боишься проиграть
Ответ отправил: Necromancer (статус: 2-ой класс)
Ответ отправлен: 25.04.2007, 23:21 Оценка за ответ: 5
Отвечает: Крылов Александр Владимирович
Здравствуйте, Иван Ивановввв!
У формы есть еще один обработчик - OnCloseQuery. Вот код для него:
procedure TLogIn.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var otv:word;
begin
otv := MessageBox(handle,PChar('Вы действительно хотите закрыть программу?'+#13#10), PChar('Закрытие программы'), 292);
if otv=IDYES
then CanClose:=true;
if otv=IDNO
then canClose:=false;
end;
Ответ отправил: Крылов Александр Владимирович (статус: 3-ий класс)
Ответ отправлен: 25.04.2007, 23:27 Оценка за ответ: 5
Отвечает: W@NDeReR
Здравствуйте, Иван Ивановввв!
Я думаю будет проще написать тоже самое но в событии onCloseQuery формы, пример в приложении.
Приложение:
--------- Опыт — дитя мысли, а мысль — дитя действия. Нельзя учиться по книгам.
Ответ отправил: W@NDeReR (статус: 3-ий класс)
Ответ отправлен: 26.04.2007, 20:18 Оценка за ответ: 5