Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2010, 02:35   #1
toxaxa
 
Регистрация: 17.06.2010
Сообщений: 5
По умолчанию string grid

Как иp ячейки stringgrid вывести первые 2 символа в label?
dbEdit1:=(form7.stringgrid2.Cells[1,2]);- так ругается на несоответствие типов
toxaxa вне форума Ответить с цитированием
Старый 17.06.2010, 02:45   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
bdEdit1.Text:=Copy(form7.stringgrid2.Cells[1,2],1,2);
это если эдит. у лейбла св-во caption
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.06.2010, 03:01   #3
toxaxa
 
Регистрация: 17.06.2010
Сообщений: 5
По умолчанию

Сор описался 2 ночь курсач делаю ниче не сооброжаю((
С первымя 2- мя символами разобрался... следующий вопрос а как можно вывести любые 2 символа , допустим 1 и 3!
toxaxa вне форума Ответить с цитированием
Старый 17.06.2010, 03:09   #4
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Код:
bdEdit1.Text:=Copy(form7.stringgrid2.Cells[1,2],1,1)+' и ' Copy(form7.stringgrid2.Cells[1,2],3,1);
так будет "1 и 3"
tarakan1983 вне форума Ответить с цитированием
Старый 17.06.2010, 03:31   #5
toxaxa
 
Регистрация: 17.06.2010
Сообщений: 5
По умолчанию

tarakan1983 Большое спасибо!! очень помогло.

При выполнении процедуры выдает ошибку (см прикрепленные файлы)
Есть подозрения на то , что с циклом перемудрил...
Код:
procedure budila;
var i,z:integer;
begin
z:=form7.st2.rowcount;
for i:=1 to z do
  getlocaltime(ST);
if (st.wYear=StrToInt(Copy(form7.st2.Cells[1,i],10,1)+Copy(form7.st2.Cells[1,i],9,1)+Copy(form7.st2.Cells[1,i],8,1)+Copy(form7.st2.Cells[1,i],7,1))) and (st.wMonth=StrToInt(Copy(form7.st2.Cells[1,i],5,1)+Copy(form7.st2.Cells[1,i],4,1))) and (st.wDay=strtoint(Copy(form7.st2.Cells[1,i],2,1)+Copy(form7.st2.Cells[1,i],1,1))){присваиваем со стринг грид год месяц число}
then
begin
if(ST.Whour=strtoint(Copy(form7.st2.Cells[2,i],1,1)+Copy(form7.st2.Cells[2,i],2,1)))and (ST.WMinute=strtoint(Copy(form7.st2.Cells[2,i],4,1)+Copy(form7.st2.Cells[2,i],5,1))) and (st.wSecond=strtoint(Copy(form7.st2.Cells[2,i],7,1)+Copy(form7.st2.Cells[2,i],8,1))) then
{Присваиваем со стринг грид часы минуты секунды}
begin
Form5.MediaPlayer1.FileName:=Form5.sFilenameEdit2.FileName;
form5.MediaPlayer1.Open;
form5.MediaPlayer1.Play;
ShowMessage(Form5.smemo1.text);
end;
end;;

end;
Изображения
Тип файла: bmp Безымянный.bmp (643.6 Кб, 125 просмотров)

Последний раз редактировалось Stilet; 17.06.2010 в 10:23.
toxaxa вне форума Ответить с цитированием
Старый 17.06.2010, 05:07   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

А почему сразу не записали так:
Код:
procedure budila;
var i:integer;
begin
for i:=1 to form7.st2.rowcount do
getlocaltime(ST);
if (st.wYear=StrToInt(Copy(form7.st2.C ells[1,i],10,1)+Copy(form7.st2.Cells[1,i],9,1)+Copy(form7.st2.Cells[1,i],8,1)+Copy(form7.st2.Cells[1,i],7,1))) and (st.wMonth=StrToInt(Copy(form7.st2. Cells[1,i],5,1)+Copy(form7.st2.Cells[1,i],4,1))) and (st.wDay=strtoint(Copy(form7.st2.Ce lls[1,i],2,1)+Copy(form7.st2.Cells[1,i],1,1))){присваиваем со стринг грид год месяц число}
then
begin
if(ST.Whour=strtoint(Copy(form7.st2 .Cells[2,i],1,1)+Copy(form7.st2.Cells[2,i],2,1)))and (ST.WMinute=strtoint(Copy(form7.st2 .Cells[2,i],4,1)+Copy(form7.st2.Cells[2,i],5,1))) and (st.wSecond=strtoint(Copy(form7.st2 .Cells[2,i],7,1)+Copy(form7.st2.Cells[2,i],8,1))) then
{Присваиваем со стринг грид часы минуты секунды}
begin
Form5.MediaPlayer1.FileName:=Form5. sFilenameEdit2.FileName;
form5.MediaPlayer1.Open;
form5.MediaPlayer1.Play;
ShowMessage(Form5.smemo1.text);
end;
end
Ошибка означает, что у Вас в таблице пустые значения присутствуют.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 17.06.2010, 10:25   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
for i:=1 to form7.st2.rowcount do
Не согласен. Можно за пределы вылететь. Не забывай что в Делфи начали с нуля нумеровать:
Код:
for i:=1 to form7.st2.rowcount-1 do
Цитата:
что с циклом перемудрил...
Ты не с циклом перемудрил а с условием.
Вот то жуткодлинное однозначно можно упростить на 90%
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.06.2010, 13:03   #8
toxaxa
 
Регистрация: 17.06.2010
Сообщений: 5
По умолчанию мм

Немного упростил

Код:
procedure budila;
var i,z:integer;
begin
z:=form7.st2.rowcount;
{for i:=1 to z do }
i:=1;
  getlocaltime(ST);
if (st.wYear=StrToInt(copy(form7.st2.Cells[1,i],10,1)+Copy(form7.st2.Cells[1,i],9,1)+Copy(form7.st2.Cells[1,i],8,1)+Copy(form7.st2.Cells[1,i],7,1))) and (st.wMonth=StrToInt(Copy(form7.st2.Cells[1,i],5,1)+Copy(form7.st2.Cells[1,i],4,1))) and (st.wday=strtoint(Copy(form7.st2.Cells[1,i],2,1)+Copy(form7.st2.Cells[1,i],1,1)))
then
begin
if(ST.Whour=strtoint(Copy(form7.st2.Cells[2,i],1,1)+Copy(form7.st2.Cells[2,i],2,1)))and (ST.WMinute=strtoint(Copy(form7.st2.Cells[2,i],4,1)+Copy(form7.st2.Cells[2,i],5,1))) and (st.wSecond=strtoint(Copy(form7.st2.Cells[2,i],7,1)+Copy(form7.st2.Cells[2,i],8,1))) then
begin
Form5.MediaPlayer1.FileName:=Form7.st2.cells[5,i];
form5.MediaPlayer1.Open;
form5.MediaPlayer1.Play;
ShowMessage(Form7.st2.cells[3,i]);
end;
end;;

end;
procedure TForm5.Timer2Timer(Sender: TObject);
begin
budila;
end;
Ошибок никаких не выдает, но при наступлении заветного времени , которое мы считали из стринггрида ничего не происходит!

Последний раз редактировалось Stilet; 17.06.2010 в 14:23.
toxaxa вне форума Ответить с цитированием
Старый 17.06.2010, 14:09   #9
toxaxa
 
Регистрация: 17.06.2010
Сообщений: 5
По умолчанию

Цитата:
Сообщение от toxaxa Посмотреть сообщение
Немного упростил

procedure budila;
var i,z:integer;
begin
z:=form7.st2.rowcount;
{for i:=1 to z do }
i:=1;
getlocaltime(ST);
if (st.wYear=StrToInt(copy(form7.st2.C ells[1,i],10,1)+Copy(form7.st2.Cells[1,i],9,1)+Copy(form7.st2.Cells[1,i],8,1)+Copy(form7.st2.Cells[1,i],7,1))) and (st.wMonth=StrToInt(Copy(form7.st2. Cells[1,i],5,1)+Copy(form7.st2.Cells[1,i],4,1))) and (st.wday=strtoint(Copy(form7.st2.Ce lls[1,i],2,1)+Copy(form7.st2.Cells[1,i],1,1)))
then
begin
if(ST.Whour=strtoint(Copy(form7.st2 .Cells[2,i],1,1)+Copy(form7.st2.Cells[2,i],2,1)))and (ST.WMinute=strtoint(Copy(form7.st2 .Cells[2,i],4,1)+Copy(form7.st2.Cells[2,i],5,1))) and (st.wSecond=strtoint(Copy(form7.st2 .Cells[2,i],7,1)+Copy(form7.st2.Cells[2,i],8,1))) then
begin
Form5.MediaPlayer1.FileName:=Form7. st2.cells[5,i];
form5.MediaPlayer1.Open;
form5.MediaPlayer1.Play;
ShowMessage(Form7.st2.cells[3,i]);
end;
end;;

end;
procedure TForm5.Timer2Timer(Sender: TObject);
begin
budila;
end;

Ошибок никаких не выдает, но при наступлении заветного времени , которое мы считали из стринггрида ничего не происходит!
Жду ответа!
toxaxa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по Delphi(string grid) Slava-hacker32 Помощь студентам 2 04.05.2010 10:55
как при нажатии выдалась справка из string grid deadneoo Компоненты Delphi 2 30.04.2010 21:04
Не раскрашивается ячейка в таблица string grid samouelson Общие вопросы Delphi 1 27.03.2010 22:36
String Grid в VC++ Аlex Общие вопросы C/C++ 1 30.01.2009 22:48
String Grid обработка Enter Nesta Общие вопросы C/C++ 3 18.11.2007 06:13