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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

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

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

Выпуск № 982
от 18.11.2007, 17:05

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


Вопрос № 109088: Здравствуйте!!! Подскажите пожалйста, как удалить строку i в компоненте TStringGrid. Мои попытки не увенчались успехом. Я использовал в Delphi 7: Rows.Delete(i) - ничего не делает (ошибка компиляции) Rows[i].Delete(1) - ошибка (не может у...
Вопрос № 109206: Уважаемые эксперты! Как сделать, чтобы в компоненте DBGrid (D7) можно было перемещать подсвеченную строку "колесиком" "мыши" в пределах всех записей подключенной к DBGrid таблицы (обычно перемещается только в пределах отобража...
Вопрос № 109207: Добрый день уважаемые эксперты! У меня возникла необходимость написать прогу которая должна дозваниваться по определённому номеру телефона, или по созданому в системе соединению (подключение к сети на рабочем месте), подключаться к FTP-серверу и из о...

Вопрос № 109.088
Здравствуйте!!! Подскажите пожалйста, как удалить строку i в компоненте TStringGrid. Мои попытки не увенчались успехом.
Я использовал в Delphi 7:
Rows.Delete(i) - ничего не делает (ошибка компиляции)
Rows[i].Delete(1) - ошибка (не может удалить). Это, как я вычитал потом, удаляет 1 ячейку в i строке.

В общем надо удалить строку из StringGrid программно в Delphi 7.
Спасибо за внимание
Отправлен: 12.11.2007, 17:17
Вопрос задал: piit (статус: Студент)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mishell
Здравствуйте, Piit!
в TStringGrid нет стандартного удаления строки - можно только изменить кол-во строк
поэтому придется перенести данные из всех строк ниже на строку выше, после чего уменьшить кол-во строк в таблице на 1
Ответ отправил: Mishell (статус: 7-ой класс)
Ответ отправлен: 12.11.2007, 17:22
Оценка за ответ: 5

Отвечает: Yumark
Здравствуйте, Piit!

Я делал следующим образом:
1) Значения i-той строки заменял значением последней строки.
2) Уменьшал количество строк TStringGrid на единицу.

P.S.: Это хорошо, если массив не отсортирован.

Ответ отправил: Yumark (статус: 2-ой класс)
Ответ отправлен: 12.11.2007, 17:43
Оценка за ответ: 5
Комментарий оценки:
Просто супер!!!

Отвечает: Gh0stik
Здравствуйте, Piit!

верно замечено в предыдущем ответе, потому следует писать свою процедуру, которая и будет выполнять указанные действия:

procedure DelRow(SGrid:TStringGrid; _row:integer);
var i,j:integer;
begin
   with SGrid do
   for i:=_row-1 to RowCount-2 do
     for j:=0 to ColCount-1 do
     begin
         Cells[j,i]:=Cells[j,i+1];
     end;
   SGrid.RowCount:=SGrid.RowCount-1;
end;


А вот непосредственно вызов процедуры:
DelRow(StringGrid1,3); //удаляем из StringGrid1 3-ю строку.

Good Luck!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор)
Украина, Славянск
Организация: Славянский государственный педагогический университет (Кафедра алгебры)
ICQ: 289363162
----
Ответ отправлен: 12.11.2007, 18:08
Оценка за ответ: 5


Вопрос № 109.206
Уважаемые эксперты!
Как сделать, чтобы в компоненте DBGrid (D7) можно было перемещать подсвеченную строку "колесиком" "мыши" в пределах всех записей подключенной к DBGrid таблицы (обычно перемещается только в пределах отображаемых в данный момент записей).
Отправлен: 13.11.2007, 13:18
Вопрос задал: Петров Николай (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mishell
Здравствуйте, Петров Николай!
нужно "ловить" событие WM_MOUSEWHEEL и в нем уже управлять перемещением по строкам - вот тут есть пример:
http://delphiworld.narod.ru/base/dbgrid_wheel_correct.html
Ответ отправил: Mishell (статус: 7-ой класс)
Ответ отправлен: 13.11.2007, 14:44
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо.Все работает как хотелось


Вопрос № 109.207
Добрый день уважаемые эксперты! У меня возникла необходимость написать прогу которая должна дозваниваться по определённому номеру телефона, или по созданому в системе соединению (подключение к сети на рабочем месте), подключаться к FTP-серверу и из одной папки загружать на мой комп имеющиеся там файлы, после загрузки удалять файлы с FTP, а в другую папку отправлять файлы с моего компа. Подскажите как все это можно реализовать (желательно с примерами), или дайте ссылки на ресурсы в сети по данной проблеме. Желательно подробные ответы, потому что я в основном пишу проги для роботы с базами.
Отправлен: 13.11.2007, 13:19
Вопрос задал: Кисель Вадим (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Проходящий Мимо
Здравствуйте, Кисель Вадим!
Наведу пример работы с FTP-серверами. Можно создать клиент на базе компонента IdFTP с закладки Indy Clients.

IdFTP.UserName := 'Пользователь';
IdFTP.Password := 'Пароль';
IdFTP.Host := '127.0.0.1';
try
IdFTP.Connect();
except
Application.MessageBox(PChar('Ошибка подключения', 'Вот!', MB_ICONSTOP);
exit;
end;

try
//переходим в нужн. каталог на сервере
IdFTP.ChangeDir('Dir');
except
Application.MessageBox(PChar('Не могу перейти', 'Вот!', MB_ICONSTOP);
exit;

//а вот и сама передача файла
IdFTP.Put(Исходящий_файл, 'Файл_на_сервере');
end;

Для удаления файла служит метод .Delete(FileName:Tstring). Ну и не забыть отключится методом .Disconnect. В приложении работающая консольная программа для передачи файлов по FTP-протоколу на сервер, параметры подключения читаются с ini-файла.
Удачи.

Приложение:

---------
Carpe diem!

Ответ отправил: Проходящий Мимо (статус: 10-ый класс)
Ответ отправлен: 13.11.2007, 13:54
Оценка за ответ: 4
Комментарий оценки:
Спасибо за оперативность и развёрнутый ответ по раоботе с FTP, но хотелось бы и ответ по дозвону


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.1 от 14.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное