Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Access Violation


Страницы:   1 2

programmer90 ©   (2009-02-03 14:33:00) 

Здрасти.
Ищу  слово в СтрингГриде
Выполяняю такой код:
function FindWord(str:string):integer;
var
stringGrid1:TStringGrid; i,j:integer; TreeView1:TTReeView;
begin
  for j:=1 to  SG1RC-1 do
   if str=StringGrid1.Cells[1,j] then  {в этой строке компилятор         ругается, вроде оба стринги}
     begin
        result:=j;
        break;
     end;
end;

вызываю функцию так :
FindWord('my');

Компилятор задолбал уже с АCcess Violation...


programmer90   (2009-02-03 17:08:00) [1]


> Вам, молодой человек или в детский сад, или сюда:

лучше по ссылке..."хачу стать самоваром"
Спс.


Amoeba   (2009-02-03 16:45:00) [2]


> programmer90   (03.02.09 16:37) [25]
>
>
> > Может тебе всё-таки начать с чтения книг, например, "Делфи
> > за 21 секунду для полных идиотов".
>
> Спасибо за добрые слова.
> "Делфи за 21 секунду для полных идиотов".
> Вы её наверно всю прочли)

Вам, молодой человек или в детский сад, или сюда:
http://www.delphikingdom.com/lyceum/

А пока не похоже, что учите основы. А если и учите, то учеба не впрок идет.


Anatoly Podgoretsky   (2009-02-03 16:43:00) [3]

> MsGuns  (03.02.2009 16:16:18)  [18]

Что бы хоть чуть-чуть подумал, а то очень много времени прогресс нулевой.


clickmaker   (2009-02-03 16:43:00) [4]

> [23] programmer90   (03.02.09 16:32)

по каким же это книжкам, что там нет таких элементарных вещей как "сделать его членом класса"?

я уж не говорю про раздел Method declarations and implementations Дельфового хелпа, который уж точно должен быть под рукой


programmer90   (2009-02-03 16:37:00) [5]


> Может тебе всё-таки начать с чтения книг, например, "Делфи
> за 21 секунду для полных идиотов".

Спасибо за добрые слова.
"Делфи за 21 секунду для полных идиотов".
Вы её наверно всю прочли)


Плохиш   (2009-02-03 16:33:00) [6]


> programmer90   (03.02.09 16:24) [19]
> Если не объявлять перемнну в локальной функции, компилятор
> сообщяет об ошибке "необъявленной переменной".

Может тебе всё-таки начать с чтения книг, например, "Делфи за 21 секунду для полных идиотов".


programmer90   (2009-02-03 16:32:00) [7]


> потому что FindWord не является членом класса, в котором
> объявлена ссылка на стринггрид1блин, это же основы...

Ну да я и учу основы, так как сделать его членом класса?


programmer90   (2009-02-03 16:31:00) [8]


> StringGrid1.Cols[].IndexOf

Коротко, ясно, и  главное в точку.
Спс.


clickmaker   (2009-02-03 16:29:00) [9]

> Если не объявлять перемнну в локальной функции, компилятор
> сообщяет об ошибке "необъявленной переменной".

потому что FindWord не является членом класса, в котором объявлена ссылка на стринггрид1
блин, это же основы...


programmer90   (2009-02-03 16:27:00) [10]


> Так устроит?for I := 0 to Sg1Rc-1 do  if Pos('Amoeba', StringGrid1.
> Rows[I].Text) > 0 then   Break;

Вполне :)


programmer90   (2009-02-03 16:24:00) [11]


> Anatoly Podgoretsky ©   (03.02.09 15:11) [12]

о пункте 2.
Если не объявлять перемнну в локальной функции, компилятор сообщяет об ошибке "необъявленной переменной".

> Sg1Rc это вторая ошибка.

и пока я не буду знать как это сделать для меня лучше будет лучше использовать переменную SG1RC ...


MsGuns   (2009-02-03 16:16:00) [12]

>Anatoly Podgoretsky ©   (03.02.09 15:34) [14]
>Да чего тут писать
>for i:=0 to StringGird1.RowCount do

Ошибка допущена умышленно ?
:)


Amoeba   (2009-02-03 15:39:00) [13]

Так устроит?
for I := 0 to Sg1Rc-1 do
 if Pos('Amoeba', StringGrid1.Rows[I].Text) > 0 then
  Break;


Anatoly Podgoretsky   (2009-02-03 15:35:00) [14]

> programmer90  (03.02.2009 15:22:13)  [13]

Кстати и этот код тоже бессмысленный


MBo   (2009-02-03 15:35:00) [15]

StringGrid1.Cols[].IndexOf


Anatoly Podgoretsky   (2009-02-03 15:34:00) [16]

> programmer90  (03.02.2009 15:22:13)  [13]

Да чего тут писать

for i:=0 to StringGird1.RowCount do

Sg1Rc это вторая ошибка.
Если ты сумел намудрить в двух таких простых строках, то о как коде, а тем ьрее суперкоде вообще говорить, рано тебе еще.


programmer90   (2009-02-03 15:22:00) [17]

А можно узнать разницу между суперкодом и говнокодом?
Вот задача
Дан объект StingGrid1 типа TStringGrid , в нем 1-ый столбец заполнен данными типа String ,кол-во строк =SG1RC .
дано слово, ну для определенности положим str:='Amoeba'
Найти(строку) где это слово в СтрингГриде.
 for i:=0 to Sg1Rc-1 do
    if str=StringGird1.Cells[0,i] then break;
Не супер, кто напишет лучше?


Anatoly Podgoretsky   (2009-02-03 15:11:00) [18]

> programmer90  (03.02.2009 15:01:10)  [10]

1) есть
2) не объявлять


Григорьев Антон   (2009-02-03 15:11:00) [19]


> Как объявить  StringGrid чтобы он в моих локальных функция
> был тот же самый?

Его не надо объявлять, надо правильно обращаться к тому, который уже есть. Например, если ваша форма называется Form1, то писать внутри своей функции Form1.StringGrid1. Но самое правильное - это сделать такую функцию методом класса, тогда все поля класса будут ей доступны.

Если функция должна работать с разными классами окон, и привязать её к одному из них нельзя, надо сделать у функции параметр типа StringGrid1 и указывать его при вызове, а внутри функции обращаться к параметру.


programmer90   (2009-02-03 15:01:00) [20]

Два вопроса:
1)Есть ли функции сравнения стрингов... которая отвечает  да или нет


> "Ах да, это правда: это точно Загоскина; а есть другой «Юрий
> Милославский», так тот уж мой" (С) Чичиков

2)Как объявить  StringGrid чтобы он в моих локальных функция был тот же самый?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо