Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Оцените проги!   Найти похожие ветки 

 
Seriouss   (2004-03-07 23:34) [0]

вот три проги -
http://serious.net.ru/other/Base.rar
http://serious.net.ru/other/PoleDelphi.rar
http://serious.net.ru/other/chislFILEnoerr430.rar (если у кого то потребует dll, то качать - http://serious.net.ru/other/qtintf70.rar)

ps. мне 12 лет
ps2. занимаюсь delphi 1 месяц
ps+ps2:="строго не судите!";


 
Алхимик ©   (2004-03-07 23:39) [1]

Знаешь, что то не сильно хочется exe шник твой запускать.
Мало ли... :)
Вот код посмотрел бы.


 
Seriouss   (2004-03-07 23:46) [2]

вот код мне не сильно хочется отправлять, а если вы, мистер, боитесь что там вирус, то включите антивирус!)))


 
Seriouss   (2004-03-07 23:47) [3]

небойтесь! там все мирно. ничего опастного!


 
Seriouss   (2004-03-07 23:51) [4]


procedure TForm5.Button1Click(Sender: TObject);
var
i, i2, i3: Integer;
begin
if (Form1.StringGrid1.RowCount+StrToInt(Form5.SpinEdit1.Text))<99999999 then begin    

Form1.StringGrid1.RowCount:=Form1.StringGrid1.RowCount+StrToInt(Form5.SpinEdit1.Text);    
For i:=1 to Form1.StringGrid1.RowCount do begin  
Form1.StringGrid1.Cells[0,i]:=IntToStr(i);
end;

Form5.SpinEdit2.Text:=IntToStr(StrToInt(Form5.SpinEdit2.Text)+1);              
for i2:=1 to Form1.StringGrid1.ColCount do begin  
tempstr:="";
tempstr2:="";

for i3:=0 to StrToInt(Form5.SpinEdit1.Text)-1 do begin    
 for i:=0 to Form1.StringGrid1.RowCount-StrToInt(Form5.SpinEdit2.Text) do begin tempstr2:=Form1.StringGrid1.Cells[i2,StrToInt(Form5.SpinEdit2.Text)+i];      Form1.StringGrid1.Cells[i2,StrToInt(Form5.SpinEdit2.Text)+i]:=tempstr;
     tempstr:=tempstr2;
 end;
end;
end;
Form5.SpinEdit2.Text:=IntToStr(StrToInt(Form5.SpinEdit2.Text)-1);      
end
else
begin
ShowMessage("Слишком много строк!");
end;
end;


Красиво, как считаете? это маленький фрагмент) из Base.exe


 
Игорь Шевченко ©   (2004-03-07 23:52) [5]


> там все мирно. ничего опастного


LOL


 
TButton ©   (2004-03-07 23:56) [6]

а можно в общих чертах, что это и как это? а то мне качать чтоб узнать что там нечто совершенно бесполезное очень лениво.


 
Seriouss   (2004-03-07 23:56) [7]

=)


 
Seriouss   (2004-03-07 23:58) [8]

примерно 200кб каждый архив, что ж вы, мастера, такие ленивые?


 
Seriouss   (2004-03-08 00:00) [9]

TButton
да, там совершенно бесполезные проги, но дайте мне повысить свое самолюбие, и оцените хоть как-то))


 
Алхимик ©   (2004-03-08 00:03) [10]

[8] Seriouss   (07.03.04 23:58)
Посмотрел.
Если > ps. мне 12 лет , то вполне неплохо.
А код свой считаешь рефоллюционным и боишься показать? :)

> [6] TButton ©   (07.03.04 23:56)
> а можно в общих чертах, что это и как это? а то мне качать
> чтоб узнать что там нечто совершенно бесполезное очень лениво.

1 - Чахоточный брат Excel
2 - Настольный вариант поля чудес на 3 вопроса.


 
Игорь Шевченко ©   (2004-03-08 00:03) [11]


> Красиво, как считаете?


Некрасиво. Использование переменных объекта в его методах - крайне дурной тон, чреватый ошибками.


 
DiamondShark ©   (2004-03-08 00:04) [12]


> небойтесь! там все мирно. ничего опастного!

Вообще-то, тебя никто не подозревает. Просто ты сам о том, есть ли там что-то опасное, можешь не знать.


 
Piter ©   (2004-03-08 00:05) [13]

я не понимаю ссмысла смотреть проги, если даже непонятно, что там. Нафига это мне (да и не только мне). Подумай, Seriouss.

Ты думаешь сейчас жуткий дефицит программ, чтобы смотреть просто все подряд, лишь бы увидеть наконец то ПРОГРАММУ


 
Seriouss   (2004-03-08 00:06) [14]

Алихмик
1- это не брат Exel. даже не чахоточный. он к нему и близко не приближался
2- если вам мало воросов, лезьте в базу и добавляйте))
3- вы 3-й файл не скачали

//А код свой считаешь рефоллюционным и боишься показать? :)
ну... могу конечно показать если кого интересует


 
Seriouss   (2004-03-08 00:09) [15]

//Некрасиво. Использование переменных объекта в его методах - крайне дурной тон, чреватый ошибками.//

чего чего?


 
DiamondShark ©   (2004-03-08 00:10) [16]


> Красиво, как считаете? это маленький фрагмент) из Base.exe

Для 12 лет + 1 месяц -- не смертельно.

1. Использование глобальных переменных (Form1, Form5). Лучше не привыкать, даже если в простенькой задаче кажется, что ничего страшного.

2. StrToInt(Form5.SpinEdit1.Text) используется во многих местах. Причём, это что-то важное, вводимое на форме Form5. Лучше оформить как свойство.


 
Алхимик ©   (2004-03-08 00:11) [17]


> [14] Seriouss   (08.03.04 00:06)


> 3- вы 3-й файл не скачали
Ломает :)
> ну... могу конечно показать если кого интересует
Туда же кинь, народ (кому не лень) поглядит, подскажет (наверно).


 
Seriouss   (2004-03-08 00:13) [18]

//1. Использование глобальных переменных (Form1, Form5). Лучше не привыкать, даже если в простенькой задаче кажется, что ничего страшного.//
А что надо использовать?

//2. StrToInt(Form5.SpinEdit1.Text) используется во многих местах. Причём, это что-то важное, вводимое на форме Form5. Лучше оформить как свойство.//
а что такое свойство?))))))


 
Anatoly Podgoretsky ©   (2004-03-08 00:13) [19]

Seriouss   (07.03.04 23:46) [2]
Насчет антивируча, ты всерьез нас за идиотов принимаешь?


 
Алхимик ©   (2004-03-08 00:14) [20]


> [15] Seriouss   (08.03.04 00:09)
> //Некрасиво. Использование переменных объекта в его методах
> - крайне дурной тон, чреватый ошибками.//
>
> чего чего?

Дурной тон - это, к примеру, щи вилкой хлебать. Не смертельно, но и не стоит :)


 
Piter ©   (2004-03-08 00:18) [21]

Seriouss (08.03.04 00:09) [15]
//Некрасиво. Использование переменных объекта в его методах - крайне дурной тон, чреватый ошибками.//

чего чего?


у тебя есть метод TForm5.Button1Click
И ты в нем обращаешься непосредственно к экземпляру класса TForm5 (к Form5), например

Form5.SpinEdit2.Text:=IntToStr(StrToInt(Form5.SpinEdit2.Text)-1);

Почему бы просто не написать

SpinEdit2.Text:=IntToStr(StrToInt(Form5.SpinEdit2.Text)-1);

К тому же, задумайся о форматировании текста, а то что это такое...

Единственное что мне думается... оно тебе надо в 12 лет?


 
Piter ©   (2004-03-08 00:28) [22]

Piter (08.03.04 00:18) [21]
точнее лучше будет написать

SpinEdit2.Text:=IntToStr(StrToInt(SpinEdit2.Text)-1);

А еще лучше:

With SpinEdit2.Text do
 Text:=IntToStr(StrToInt(Text)-1);


Ну а еще лучше

With SpinEdit2.Text do
 try
   Text:=IntToStr(StrToInt(Text)-1);
 except on EConvertError do
   showmessage("Что вы мне тут в SpinEdit понаписали?!");
end;


Piter (08.03.04 00:18) [21]
И ты в нем обращаешься непосредственно к экземпляру класса TForm5 (к Form5),


конечно, скорее всего кроме Form5 других экземпляров TForm5 у тебя нету, но тем не менее


 
DiamondShark ©   (2004-03-08 00:31) [23]


> А что надо использовать?

Из метода TForm5 нет смысла обращаться к переменной Form5, для доступа к самой форме. Все её методы и компоненты уже находятся в области видимости метода. Кроме того, такой код будет однозначно ошибочным при использовании нескольких экземпляров формы.

Форма Form5 оказывается сильно связанной с формой Form1 (небось, показ Form5 происходит из Form1. Угадал?). Но это не нужно. Form5 -- это форма каких-то настроек, угадал? Так вот, ей совершенно не нужно знать о существовании Form1. Её задача -- получить ввод от юзера, а конкретными действиями пусть занимается сама Form1.
Весь код, изменяющий Form1 из Form5 убрать. Все данные, вводимые юзверем оформить свойствами.


> а что такое свойство?))))))

Ну... это... Вот Text, к примеру, это свойство SpinEdit.

Желательно с деталями языка ознакомится. Ключевое слово для поиска в справке -- property.


 
DiamondShark ©   (2004-03-08 00:33) [24]


> Ну а еще лучше
>
> With SpinEdit2.Text do
>  try
>    Text:=IntToStr(StrToInt(Text)-1);


Эта... ты его не слушай. Он тебя плохому научит.


 
Алхимик ©   (2004-03-08 00:45) [25]

Нафига?
SpinEdit2.Text:=IntToStr(StrToInt(SpinEdit2.Text)-1);
Когда есть Value?
SpinEdit1.Value := SpinEdit1.Value - 1;


 
Seriouss   (2004-03-08 10:37) [26]

//Единственное что мне думается... оно тебе надо в 12 лет?//
да, надо. делать больше нечего)

http://serious.net.ru/other/SourceBase.rar
исходники Base.exe. смотрите. скоро и другие выложу

ps. не обращайте внимания на идиотские коментариии в коде. я писал там где мне удобно и как удобно)


 
Seriouss   (2004-03-08 10:49) [27]

//Когда есть Value?
SpinEdit1.Value := SpinEdit1.Value - 1;//
спасибо. незнал. исправлюсь.


 
Piter ©   (2004-03-08 11:08) [28]

DiamondShark (08.03.04 00:33) [24]
блин, ну ошибся, на самом деле
with SpinEdit2 do
засыпал просто :)


 
Seriouss   (2004-03-08 11:10) [29]

код кто нибудь смотрел?


 
Anatoly Podgoretsky ©   (2004-03-08 11:27) [30]

Зачем, приведенного в [4] достаточно, понимаешь есть такая штука как нервы, очень дорогостоящее в лечении. Короче этого куска достаточно, чтобы остальное не смотреть.


 
Seriouss   (2004-03-08 11:42) [31]

спокойнее надо ко всему относиться


 
Anatoly Podgoretsky ©   (2004-03-08 11:49) [32]

Спокойствие, только спокойствие. (С) Карлсон.


 
Seriouss   (2004-03-08 12:21) [33]

вижу никто смотреть не собирается.


 
Anatoly Podgoretsky ©   (2004-03-08 12:31) [34]

Ну не отчаивайся, может кто и посмотрит, то ты вроде не предоставляешь исходные коды, как смотреть то?


 
Piter ©   (2004-03-08 12:36) [35]

to Seriouss
лучше расскажи как доменое имя в net.ru зарегистрировал и где хостера нашел


 
Seriouss   (2004-03-08 12:57) [36]

Piter
http://red-host.com
бесплатно net.ru дают

Anatoly Podgoretsky
//не предоставляешь исходные коды//
как не предоставляю вот - http://serious.net.ru/other/SourceBase.rar
писал в [26]


 
Nous Mellon ©   (2004-03-08 13:00) [37]

Эх, я в 12 лет в футбол гонял до потери пульса. :)))


 
Seriouss   (2004-03-08 13:09) [38]

//Эх, я в 12 лет в футбол гонял до потери пульса. :)))//
нелюблю футбол)


 
Nous Mellon ©   (2004-03-08 13:42) [39]


> нелюблю футбол)

Ты эта... ко врачу сходи :)


 
Seriouss   (2004-03-08 16:26) [40]

Ты эта... ко врачу сходи :)

обязательно.
дак что с кодом?


 
Seriouss   (2004-03-08 17:20) [41]

эх люди, люди!


 
jack128 ©   (2004-03-08 17:44) [42]


> дак что с кодом?

Ты бы на ММП сходил, там тебе такую рецензию на этот код накатали - закачаешься :-))


 
Юрий Зотов ©   (2004-03-08 17:53) [43]

> Seriouss

Честно посмотрел код в [4]. Недостатков много, но о них уже говорили, поэтому повторяться не стоит. А в целом могу сказать, что для 12 лет код даже очень неплохой. Если не обленитесь, не зазнаетесь, не увлечетесь чем-то другим  и т.д., то у Вас есть все шансы стать весьма сильным программистом.

Только не рассчитывайте, что это произойдет скоро. Еще очень и очень не скоро - потому что еще очень многое предстоит узнать и очень многому научиться (причем написание кода (на любом языке) в этом списке стоит на самом последнем месте).

Но, надеюсь, когда-нибудь это все же произойдет. И от души желаю этого Вам, коллега.
:о)


 
Seriouss   (2004-03-08 18:06) [44]

Ты бы на ММП сходил, там тебе такую рецензию на этот код накатали - закачаешься :-))
что такое ММп?))

Юрий Зотов
Спасибо, постараюсь)


 
Seriouss   (2004-03-08 18:16) [45]

вот еще фрагмент. опишите плиз недостатки)

procedure load;
var
f: TextFile;
i: Integer;
begin
if NOT FileExists("base.bsn") then rewrit;
if FileExists("base.bsn") then
 begin
   procok:=0;
   row:=0;
   AssignFile(f, "base.bsn");
   Reset(f);
   readln(f, title);    
   readln(f, tempstr);  
   Col:=StrToInt(tempstr);  
   SetLength(named,col+1);
   SetLength(sizecol,col+1);
   for i:=1 to Col do  
     begin
       readln(f, named[i]);
     end;

   For i:=1 to Col do  
   begin
     readln(f, tempstr);
     sizecol[i]:=StrToInt(tempstr);
   end;
   tempint:=1;
   readln(f, tempstr);  
   repeat
     readln(f, tempstr);
     if tempstr<>"-/*\-" then
       begin
       row:=row+1;
       SetLength(data,(row*col)+1);
       data[tempint]:=tempstr;  
       tempint:=tempint+1;
       end
     else
       begin
       procok:=1;
       end;
   until procok=1;
   CloseFile(f);
   Form1.StringGrid1.RowCount:=row div col+2;    
   Reset(f);
   procok:=0;

   for i:=1 to col*2+3 do  
   begin
   readln(f, tempstr);
   end;

   CloseFile(f);
   end
else
 begin
   ShowMessage("Ошибка: нет файла базы");
   Form1.Close;
 end;
end;

procedure render;
var
i: Integer;
begin
Form1.Caption:=title;        
Form1.StringGrid1.ColCount:=col+1;      
Form1.StringGrid1.ColWidths[0]:=23;    

for i:=1 to Form1.StringGrid1.ColCount-1 do begin
Form1.StringGrid1.Cells[i,0]:=named[i]+"  ("+IntToStr(i)+")";  
Form1.StringGrid1.ColWidths[i]:=sizecol[i];  
end;

For i:=1 to Form1.StringGrid1.RowCount do begin  
Form1.StringGrid1.Cells[0,i]:=IntToStr(i);
end;

rc:=row*col;
tempint:=1;
tempint2:=1;
tempint3:=1;
for i:=1 to rc do
begin
 Form1.StringGrid1.Cells[tempint,tempint2]:=Data[tempint3];
 tempint3:=tempint3+1;
 tempint:=tempint+1;
 if tempint=Form1.StringGrid1.ColCount then
 begin
 tempint2:=tempint2+1;
 tempint:=1;
 end;
 end;

end;


 
Seriouss   (2004-03-08 18:21) [46]

ps. фрагмент в [45] - одна из важнейших частей в программе, поэтому  хочется узнать, что сделанно неправильно, что можно сделать проще и т.д...


 
Anatoly Podgoretsky ©   (2004-03-08 18:29) [47]

Очень много плохо, но самое тяжелое глобальные переменные.


 
Seriouss   (2004-03-08 18:33) [48]

Очень много плохо что именно "МНОГО"


 
Seriouss   (2004-03-08 18:36) [49]

что нибудь более конкретное говорите пожалуйста


 
Seriouss   (2004-03-08 18:43) [50]

но самое тяжелое глобальные переменные
толи я совсем тугодум то ли еще что, но так и не понял, что в них плохо?


 
Piter ©   (2004-03-08 19:42) [51]

Seriouss (08.03.04 18:43) [50]

Все в них плохо. Это давно выяснено и есть правило - чем меньше у тебя глобальных переменных - тем лучше.
Что такое procok, Col, rowб tempstr, title? Разве нельзя их объявить как локальные переменные? Глобальные переменные запутывают логику программы,  в конце концов перестанешь улавливать где они изменяются, что приведет к трудно обнаружаемым ошибкам.

Что за непонятная конструкция:

if NOT FileExists("base.bsn") then rewrit;
if FileExists("base.bsn") then

Если rewrite не оказывает влияния на появление файла base.bsn, то логичней писать так:

if FileExists("base.bsn") then
 begin  
   ...
 end
else
 rewrit;
...


Если оказывает - то вообще глупость. Получается, что если файла нету, то ты его создаешь, ЗАПОЛНЯЕШЬ данными и тут же их СЧИТЫВАЕШЬ. Где логика?

Я уже не говорю про перехват исключений при StrToInt

Дальше:

for i:=1 to Col do  
    begin
      readln(f, named[i]);
    end;


Если named динамический массив - то возможно тебе надо начинать с нуля, то есть for i:=0 to Coll-1 ?
Тогда и SetLength(named,col+1); будет выглядеть как: SetLength(named,col); ?
А то видимо нулевой индекс массива ты не используешь...

Что такое sizecol? Называй переменные понятно, а то кажется, что это размер col, а на самом деле тоже динамический массив.

Опять обращение к Form1. Не думаю, что так необходимо из неких процедур обращаться к глобальным переменным.

В общем, код ужасен. Конечно, то, что он работает - хорошо. Но логически не выверен - это плохо.

Подумай над ПРОЕКТИРОВАНИЕМ. Это очень, очень важная вещь. Выключи компьютер, отойди от него. Продумай в общих чертах как все будет выглядеть, нарисуй на бумажке зависимости, кто к кому будет обращаться. Должна получиться более менее иерархическая зависимость, а не беспорядочное обращение всем ко всему.

Только вот опять же повторюсь - оно тебе надо в 12 лет?


 
Юрий Зотов ©   (2004-03-08 20:06) [52]

> Piter ©   (08.03.04 19:42) [51]

> Подумай над ПРОЕКТИРОВАНИЕМ. Это очень, очень важная вещь.

Золотые слова. Но сколько лет надо потерять, сколько переписать кода и сколько наплодить ошибок, пока не поймешь, что они действительно золотые...

> Seriouss

И все же попробуйте именно СПРОЕКТИРОВАТЬ программу. А уж потом ее писать. Если получится - будет ОЧЕНЬ хорошо.


 
Seriouss   (2004-03-08 20:37) [53]

Что такое procok, Col, rowб tempstr, title? Разве нельзя их объявить как локальные переменные?
нельзя. т.к. они используются и в др. процедурах.

Что такое sizecol? Называй переменные понятно, а то кажется, что это размер col, а на самом деле тоже динамический массив.
это массив, в котором размещены размеры столбцов. все понятно.

Опять обращение к Form1. Не думаю, что так необходимо из неких процедур обращаться к глобальным переменным.
Это я понял. просто еще код не исправлял.

Только вот опять же повторюсь - оно тебе надо в 12 лет?
Надо. а что еще делать?)))


 
Юрий Зотов ©   (2004-03-08 20:45) [54]

> Seriouss   (08.03.04 20:37) [53]
> это массив, в котором размещены размеры столбцов.

Тогда, наверное, было бы лучше ColSizes или SizeOfCols? Ведь SizeCol в переводе - это "cтолбец размера", а не "размер столбца". Да и множественное число не показано.


 
Seriouss   (2004-03-08 20:45) [55]


Я уже не говорю про перехват исключений при StrToInt

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


 
Seriouss   (2004-03-08 20:47) [56]

Тогда, наверное, было бы лучше ColSizes или SizeOfCols? Ведь SizeCol в переводе - это "cтолбец размера", а не "размер столбца". Да и множественное число не показано.

понимаете, я называю массивы, так как мне удобно. я английского не знаю, в школе фр.яз. учу


 
Seriouss   (2004-03-08 20:58) [57]


procedure TForm1.Button2Click(Sender: TObject);
var
f: TextFile;
p: String;
n: String;
nf: String;
i: Integer;
te: Integer;
tes: integer;
label
1;

begin

Form1.Label2.Caption:="";
Form1.Label3.Caption:="";
Form1.Label4.Caption:="";
Form1.Label5.Caption:="";
Form1.Label9.Caption:="";

if Form1.Edit1.Text = "" then
 begin
   ShowMessage("Вы не ввели число!");
   Form1.Edit1.SetFocus;
 goto 1;
end;

te :=StrtoInt(Form2.Edit1.Text);
tes :=1;

for i:=StrToInt(Form2.Edit1.Text) to StrToInt(Form2.Edit2.Text) do begin
 if (Form1.Edit1.Text = IntToStr(te)) then
   begin
     tes := 2
   end;
   te := te+1
end;

if (tes=1) then
 begin
   ShowMessage("Вы ввели либо букву, либо число находящееся за пределами "+Form2.Edit1.Text+"-"+Form2.Edit2.Text);
   goto 1;
 end;

 b := strToInt(Form1.Edit1.Text);

       if a = b then
         begin
           Form1.Edit1.Enabled:=False;
           Form1.Button2.Enabled:=False;
           Form1.LCDNumber1.Visible:=False;
           Form1.Label10.Visible:=False;
           Form1.Edit3.Enabled := True;
           Form2.Button1.Enabled:=True;
           Form2.Button2.Enabled:=True;
           Form1.Button5.Enabled:=True;
           Form2.CheckBox1.Enabled:=True;
           Form2.CheckBox2.Enabled:=True;
           Form2.CheckBox3.Enabled:=True;
           Form2.Edit1.Enabled:=True;
           Form2.Edit2.Enabled:=True;
           Form1.Button1.Enabled:=True;
           Form1.Button3.Enabled:=True;
           Form1.Button4.Enabled:=False;
               if closedefname=0 then
               begin
               Form1.CheckBox1.Enabled:=True;
               end;
           Form1.Edit3.ReadOnly := False;
           Form1.Edit3.SetFocus;
           Form1.Edit3.SelectAll;
   //log write
    d :=d+1;
   n := Form1.Edit3.Text;
           if Form2.CheckBox3.Checked AND FileExists("log.txt") then
            begin
             if NOT Form2.CheckBox1.Checked then
               begin
                 AssignFile(f, "log.txt");
                 Append(f);
                 writeln(f, "["+DateToStr(Date)+" "+TimeToStr(Time)+"]"+"  "+"{"+"Загадано число - "+IntToStr(a)+". "+"Число угадано с "+IntToStr(d)+"-о раза игроком - "+n+"}");
                 CloseFile(f);
               end
              else
               begin
                 AssignFile(f, "log.txt");
                 Append(f);
                 writeln(f, "["+DateToStr(Date)+" "+TimeToStr(Time)+"]"+"  "+"{"+"Загадано число - "+IntToStr(a)+". "+"Число угадано с "+IntToStr(d)+"-о раза анонимным игроком}");
                 CloseFile(f);
               end;
              end;

           c :=0;
           AssignFile(f, "result.rsl");
           Reset(f);
           readln(f, p);
           readln(f, nf);
           CloseFile(f);

           if (p = "11111") and (nf = "сброшено") then
             begin
               Form1.Edit2.Text := n+", Вы угадали! Это число - "+IntToStr(a)+"! Ваш результат - "+IntToStr(d)+"! (Вы первые, кто играет в эту игру после очистки данных)";
               Rewrite(f);
               writeln(f, IntToStr(d));
               if Form2.CheckBox1.Checked then
                 begin
                   writeln(f, "Аноним1234");
                   Form1.Label1.Caption := "Вы были записаны как неизвестный поьзователь (это указано в настройках)";
                 end
               else
                 begin
                   writeln(f, n);
                 end;

               writeln(f, "//Изменять это нерекомендуется, хоть и можно! :)//");
               CloseFile(f);
               goto 1;
             
           end;

       if (StrToInt(p) > d) then
         begin
           if (nf="Аноним1234") then
             begin
               Form1.Edit2.Text := n+", Вы угадали! Это число - "+IntToStr(a)+"! Ваш результат - "+IntToStr(d)+"! Вы побили прошлый результат - "+p+" поставленный анонимным игроком";
             end
           else
             begin
               Form1.Edit2.Text := n+", Вы угадали! Это число - "+IntToStr(a)+"! Ваш результат - "+IntToStr(d)+"! Вы побили прошлый результат - "+p+" поставленный игроком - "+nf;
             end;

           Rewrite(f);
           writeln(f, IntToStr(d));

       if Form2.CheckBox1.Checked then
         begin
           writeln(f, "Аноним1234");
           Form1.Label1.Caption := "Вы были записаны как анонимный поьзователь (это указано в настройках)";
         end
       else
         begin
           writeln(f, n);
         end;

       writeln(f, "//Изменять это нерекомендуется, хоть и можно! :)//");
       CloseFile(f);
         end
       else
         begin
           if (nf="Аноним1234") then
             begin
               Form1.Edit2.Text := n+", Вы угадали! Это число - "+IntToStr(a)+"! Ваш результат - "+IntToStr(d)+"! Вы не смогли побить прошлый результат - "+p+" поставленный анонимным игроком ";
             end
           else
             begin
               Form1.Edit2.Text := n+", Вы угадали! Это число - "+IntToStr(a)+"! Ваш результат - "+IntToStr(d)+"! Вы не смогли побить прошлый результат - "+p+" поставленный игроком - "+nf;
             end;
         end;
       end;

       if (a < b) then
         begin
           Form1.Edit2.Text := "Это число меньше числа - "+ IntToStr(b);
           d := d+1;
           Form1.Edit1.SetFocus;
         end;

       if (a > b) then
         begin
           Form1.Edit2.Text := "Это число больше числа - "+ IntToStr(b);
           d := d+1;
           Form1.Edit1.SetFocus;
         end;

  Form1.Edit1.Clear;
  Form1.LCDNumber1.Value:=IntToStr(d);
1: end;


А это уже http://serious.net.ru/other/chislFILEnoerr430.rar
Зацените такой ужас)))) давно я это делал


 
Seriouss   (2004-03-08 21:21) [58]

нарисуй на бумажке
я и так некоторые моменты на бумажке рисую


 
Seriouss   (2004-03-08 22:23) [59]

нуи


 
Юрий Зотов ©   (2004-03-09 01:14) [60]

Сколько здесь повторяющихся констант?
И зачем?


          if (nf="Аноним1234") then
            begin
              Form1.Edit2.Text := n+", Вы угадали! Это число - "+IntToStr(a)+"! Ваш результат - "+IntToStr(d)+"! Вы побили прошлый результат - "+p+" поставленный анонимным игроком";
            end
          else
            begin
              Form1.Edit2.Text := n+", Вы угадали! Это число - "+IntToStr(a)+"! Ваш результат - "+IntToStr(d)+"! Вы побили прошлый результат - "+p+" поставленный игроком - "+nf;


 
Cobalt ©   (2004-03-09 09:36) [61]

Это отладка - сразу видно!


 
Anatoly Podgoretsky ©   (2004-03-09 09:44) [62]

И все равно не убираешь глобальные переменные даже там где они абсолютно лишнии. Form1 внутри обработчиков TForm1 не только лишнии, но еще и особо вредные.


 
Seriouss   (2004-03-09 17:54) [63]

Anatoly Podgoretsky
я еще не исправлял ничего. это старая программа. очень старая)


 
jack128 ©   (2004-03-09 18:30) [64]

Вообще простое(хе-хе) правило: пиши программу так, чтобы в ней мог разобраться ДРУГОЙ программист ;-)

Ну а конкретно, например меня бесят эти Form1, Form2, Label1, Label2...Label10 и тд. Имена компонентов по умолчанию стоит оставлять только тогда, если ты к этим конпонентам не обращаешься.. Вообще стилевое оформление кода хромает на обе ноги ;-) Посмотри как оформлен код VCL. ИМХО исходники должны одним своим видом достовлять эстетическое наслаждение ;-)

Насчет "учу в школе франц" , так это не кого не волнует, если хочешь быть программистом, то англ. яз. до опрделенного уровня выучить придется ибо вся документация на нем..

ММП - встреча московских обитателей этого сайта..


 
Digitman ©   (2004-03-09 18:50) [65]

разводка чистой воды


 
Sphinx ©   (2004-03-09 19:06) [66]

> Seriouss   (09.03.04 17:54) [63]

А почему не разместил на хосте типа serious.web.ur.ru
???

Господа модераторы Это не флуд!!! Просто почта типа <user>@r66.ru выделяется провайдером УралРелком выделяющим место и под домашние странички.

> Digitman ©   (09.03.04 18:50) [65]
> разводка чистой воды

Именно поэтому и спрашиваю, тоже считаю это разводом. Ну сомнительно что бы в 12 лет человек сидел и программировал. Я скорее поверю что Путин на выборах проиграет. :) Хе, а вдруг и в правду проиграет?


 
Pat ©   (2004-03-09 19:47) [67]

ИМХО, кто-то достал свои очень древние исходники и прикалывается

>я еще не исправлял ничего. это старая программа. очень старая)

>ps. мне 12 лет
>ps2. занимаюсь delphi 1 месяц

????


 
Gero ©   (2004-03-09 19:51) [68]

> Ну сомнительно что бы в 12 лет человек сидел и программировал

Я с 11 программирую


 
Sphinx ©   (2004-03-09 20:01) [69]

> Gero ©   (09.03.04 19:51) [68]

Я в целом об этом:
> Надо. а что еще делать?)))

В 12 лет я по двору рассекал, стройки ближайшие все облазил. Да мало ли чего еще вытворял? А сидеть дома у компа в таком возрасте черевато: сколиозом, плохим зрением и отсутствием нормального общения со сверстниками.


 
SeriousSam ©   (2004-03-09 21:00) [70]

А почему не разместил на хосте типа serious.web.ur.ru

у меня есть сайт на web.ur.ru, но где ты видел что б какой лиюо провайдер бесплатно давал php и mysql? ты заходил на главноу страницу - http://serious.net.ru ?

В 12 лет я по двору рассекал, стройки ближайшие все облазил.

в нашем дворе негде лазить. там одни пьяные отморозки


отсутствием нормального общения со сверстниками.


и знакомых у меня в этом районе нет. поэтому общатся могу тока в школе, по телефону и icq)


 
SeriousSam ©   (2004-03-09 21:10) [71]

сейчас делаю поиск в программе Base. скоро выложу)


 
SeriousSam ©   (2004-03-09 21:30) [72]

ММП - встреча московских обитателей этого сайта..

а я думал сайт какой то. даже на mmp.ru полез, а там фигня какая то)))))


 
SeriousSam ©   (2004-03-09 22:04) [73]

Поиск сделан. все кто интересуется, может скачать новую версия отсюда - http://serious.net.ru/other/Base.rar

код представлю ниже
ps. пытался отучиться все время писать Form6. ...
но неполучилось. так то просто набрал Form6. и вывалился список всего что на этой форме есть. и выбираешь из него. а так просто я все названия еще не запомнил)

вот код движка поиска


procedure TForm6.Button1Click(Sender: TObject);
var
rw: Integer;
cl: Integer;
cou: Integer;
i: Integer;
serok: Boolean;
begin
serok:=False;
cou:=0;
scl:=nil;
srw:= nil;
for i:=1 to Form6.StringGrid1.RowCount do Form6.StringGrid1.Cells[0,i]:="";
Form6.StringGrid1.RowCount:=2;
if Form6.Edit1.Text="" then ShowMessage("А что искать изволите? Ввидите нужный текст в поле "Что искать"")
else
 begin
   if Form6.RadioButton1.Checked then begin
     for cl:=1 to Form1.StringGrid1.ColCount do begin
       for rw:=1 to Form1.StringGrid1.RowCount do begin
         if Form1.StringGrid1.Cells[cl,rw]=Form6.Edit1.Text then begin
           cou:=cou+1;
           SetLength(scl,cou+1);
           SetLength(srw,cou+1);
           scl[cou]:=cl;
           srw[cou]:=rw;
           Form6.StringGrid1.RowCount:=Form6.StringGrid1.RowCount+1;
           Form6.StringGrid1.Cells[0,cou]:="Столбец - "+IntToStr(cl)+" Строка - "+IntToStr(rw);
           Form6.Button3.Visible:=True;
           seer:=1;
           Serok:=True;
         end;
end;
end;
end;
 if Form6.RadioButton2.Checked then begin
   for cl:=Form6.SpinEdit1.Value to Form6.SpinEdit1.Value do begin
       for rw:=1 to Form1.StringGrid1.RowCount do begin
         if Form1.StringGrid1.Cells[cl,rw]=Form6.Edit1.Text then begin
           cou:=cou+1;
           SetLength(scl,cou+1);
           SetLength(srw,cou+1);
           scl[cou]:=cl;
           srw[cou]:=rw;
           Form6.StringGrid1.RowCount:=Form6.StringGrid1.RowCount+1;
           Form6.StringGrid1.Cells[0,cou]:="Столбец - "+IntToStr(cl)+" Строка - "+IntToStr(rw);
           Form6.Button3.Visible:=True;
           seer:=1;
           Serok:=True;
         end;
end;
end;
end;

 if Form6.RadioButton3.Checked then begin
     for cl:=1 to Form1.StringGrid1.ColCount do begin
       for rw:=Form6.SpinEdit2.Value to Form6.SpinEdit2.Value do begin
         if Form1.StringGrid1.Cells[cl,rw]=Form6.Edit1.Text then begin
           cou:=cou+1;
           SetLength(scl,cou+1);
           SetLength(srw,cou+1);
           scl[cou]:=cl;
           srw[cou]:=rw;
           Form6.StringGrid1.RowCount:=Form6.StringGrid1.RowCount+1;
           Form6.StringGrid1.Cells[0,cou]:="Столбец - "+IntToStr(cl)+" Строка - "+IntToStr(rw);
           Form6.Button3.Visible:=True;
           seer:=1;
           Serok:=True;
         end;
end;
end;
end;

if NOT Serok then ShowMessage("По запросу - "+Form6.Edit1.Text+" ничего не найдено!")
else Form6.StringGrid1.RowCount:=Form6.StringGrid1.RowCount-1;
end;
end;

procedure TForm6.FormShow(Sender: TObject);
begin
Form6.RadioButton1.Checked:=True;
Form6.StringGrid1.Cells[0,0]:="Результаты поиска";
end;

procedure TForm6.StringGrid1SelectCell(Sender: TObject; ACol,
 ARow: Integer; var CanSelect: Boolean);
begin
seer:=ARow;
seec:=ACol;
end;

procedure TForm6.Button3Click(Sender: TObject);
var
myRect: TGridRect;
begin
myRect.Top := srw[seer];
myRect.Right := scl[seer];
myRect.Bottom := srw[seer];
myRect.Left := scl[seer];

Form1.StringGrid1.Selection:=myRect;
end;

end.


 
Anatoly Podgoretsky ©   (2004-03-09 22:16) [74]

В приведеном коде 26 раз встречается Form6.ххх которое можно безболезнено убрать. Вот если потихоньку будешь убирать, то возможно тогда кто ни будь захочет и в смысл вдумываться.


 
SeriousSam ©   (2004-03-09 22:20) [75]

Именно поэтому и спрашиваю, тоже считаю это разводом. Ну сомнительно что бы в 12 лет человек сидел и программировал. Я скорее поверю что Путин на выборах проиграет. :) Хе, а вдруг и в правду проиграет?

абсолюдная правда. вот сижу целый день и по клавишам стукаю))


 
SeriousSam ©   (2004-03-09 22:22) [76]

В приведеном коде 26 раз встречается Form6.ххх которое можно безболезнено убрать. Вот если потихоньку будешь убирать, то возможно тогда кто ни будь захочет и в смысл вдумываться.

цицирую [73]
ps. пытался отучиться все время писать Form6. ...
но неполучилось. так то просто набрал Form6. и вывалился список всего что на этой форме есть. и выбираешь из него. а так просто я все названия еще не запомнил)


 
Piter ©   (2004-03-09 22:30) [77]

>я еще не исправлял ничего. это старая программа. очень старая)

>ps. мне 12 лет
>ps2. занимаюсь delphi 1 месяц


Есть! Четко поймал :))) SeriousSam , темнишь :))

набрал Form6. и вывалился список всего что на этой форме есть

нажимай CTRL+[ПРОБЕЛ]


 
SeriousSam ©   (2004-03-09 22:42) [78]

Есть! Четко поймал :))) SeriousSam , темнишь :))


это старая программа. очень старая

вот вот. ей уже целый месяц! это моя первая прога на дельфи. а до это бейсиком занимался. но это совсем другое


 
SeriousSam ©   (2004-03-09 22:54) [79]

если кто скачал новую версию Base.rar качайте заново)) исправил один глюк


 
SeriousSam ©   (2004-03-09 23:34) [80]

и еще один))


 
Pat ©   (2004-03-10 00:26) [81]

>так то просто набрал Form6. и вывалился список всего что на
>этой форме есть
Alt+Space нажми


 
Pat ©   (2004-03-10 00:28) [82]

Sorry, Ctrl+Space..старею.. :-)


 
Defunct ©   (2004-03-10 00:36) [83]

Взято с http://serious.net.ru/index.php

Copyright © 2004 SeriousSam

Значит хотите сказать наваяли такой классный сайт в 12 лет? ну-ну.. На бейсике говорите? ну-ну.. А redhost.com раздает бесплатные домены? LOL
Не смешите людей.


 
SeriousSam ©   (2004-03-10 17:29) [84]

Значит хотите сказать наваяли такой классный сайт в 12 лет?

а что трудного? взял готовый портал postnuke и все.

redhost.com раздает бесплатные домены?

домены net.ru бесплатно. но ТОЛЬКО домен

Взято с http://serious.net.ru/index.php

Copyright © 2004 SeriousSam


что вы хотите этим сказать?


 
SeriousSam ©   (2004-03-10 18:46) [85]

и мне действительно 12 лет


 
DVM ©   (2004-03-10 21:03) [86]

Если хочешь, чтоб тебе поверили, что тебе 12 лет, отсканируй свое свидетельство о рождении и выложи в инет.


 
Gero ©   (2004-03-10 21:27) [87]

Похоже, что это правда.


 
SeriousSam ©   (2004-03-10 22:53) [88]

Похоже, что это правда.//
хоть один поверил


 
SeriousSam ©   (2004-03-10 22:59) [89]

кстати, вышла новая версия Base  с исправленными глюками)


 
Народ ©   (2004-03-10 23:01) [90]

> SeriousSam ©   (10.03.04 22:59) [89]

Да никому твои проги не надо. Посмотрели, посмеялись и забыли.
А ты все новые версии выпускаешь...


 
SeriousSam ©   (2004-03-11 17:34) [91]

А ты все новые версии выпускаешь...//
а я их что, для вас выпускаю?))))


 
Пробегающий мимо   (2004-03-13 14:02) [92]

> SeriousSam ©   (11.03.04 17:34) [91]

А где свидетельство о рождении?


 
SeriousSam ©   (2004-03-13 15:47) [93]


А где свидетельство о рождении?


у меня дома


 
TUser ©   (2004-03-13 15:57) [94]


> Да никому твои проги не надо. Посмотрели, посмеялись и забыли.
> А ты все новые версии выпускаешь...

99.9% прог никому не нужны, кроме ихъ создателя. из оставшихся - 99.9% нужны только очень узкой группе лиц. Так что ничего страшного.
Я, правда, эти проги не видел, но судя по обсуждению здесь - это просто круто, если чел в 12 лет так пишет. Пусть тренируется, он еще многих обгонит. Видели бы вы, что я в 12 лет писал ...


 
SeriousSam ©   (2004-03-14 11:36) [95]

^)
спасибо


 
Sphinx ©   (2004-03-14 11:44) [96]

> Видели бы вы, что я в 12 лет писал ...

А я через полгода знакомства с Басиком написал прогу которая весь курсовой полностью считала, графики диф уравнений строила, систему моделировала...вот только огарчение было что она не компилировалась.

> SeriousSam ©   (14.03.04 11:36) [95]

Если все же тебе и правда 12 лет, смотри не увлекайся а то пропустишь все радости жизни.

Если это одно большое кидалово - хе, далеко пойдешь.....
Второй Мавроди будешь :)


 
SeriousSam ©   (2004-03-15 19:46) [97]

Если все же тебе и правда 12 лет, смотри не увлекайся а то пропустишь все радости жизни.

например какие?


 
Anatoly Podgoretsky ©   (2004-03-15 20:20) [98]

Насчет нужности, это действительно правильное наблюдение.


 
Sphinx ©   (2004-03-17 13:42) [99]

> SeriousSam ©   (15.03.04 19:46) [97]
> Если все же тебе и правда 12 лет, смотри не увлекайся а
> то пропустишь все радости жизни.
>
> например какие?

Странный ты все же, какие у человека в 12 лет могут быть радости? Поноситься с друзьями по двору, облазать все сосоедние стройки, погонять девченок.
Дальше больше...дискотеки, ночные клубы...а если будешь сидеть и программировать всю жизнь, станешь классным программистом, но упустишь нечто такое, что можно будет детям рассказывать. Я сомневаюсь что им будет интересно слушать как их отец написал страшный вирус, иничтоживший корпорацию Майкрософт, и приведший к победе Линукс (которую к тому времени можно будет только по 100$ купить, так как с изчезновением конкурента Линукс стал новым монополистом).

По моему мнению следует "перебеситься" а потом, когда стукнет около 20, жизнь будет налажена, ты будешь иметь профессию (возможно программиста) и займись ЭТИМ всерьез. Но не зацыкливайся на программировании.


 
SeriousSam ©   (2004-03-18 00:13) [100]

друзьями по двору
а вот во дворе друзей нету, все где то в других концах города.

Дальше больше...дискотеки, ночные клубы

между прочим, День Рожденье, кторое было 14 марта, провел как раз на дискотеке - http://www.planet.malachite.ru/
потратил там 1500руб

Но не зацыкливайся на программировании.

я и не зацикливаюсь. просто делать больше нечего)


 
kaif ©   (2004-03-18 00:49) [101]

Чего на парня-то набросились? Вот Зотов - молодец. Сразу видно, с начинающими много общался и знает, как в таких случаях человеку помочь, а как - навредить.
 Если чел пишет, что ему 12 - значит так оно и есть. Не веришь, думаешь, что разводка - не участвуй. Сиди себе - на солнышке грейся.
 По приведенному здесь коду видно, что парень на каком-то "объектно-ориентированном языке" типа VB (без типа данных Pointer) или JavaScript что-то делал, судя по навязчивому использованию глобальных переменных, которые он понимает, как (по всей видимости по инерции) единственный способ обратиться к объекту.
 Знаний не хватает, но это дело наживное. А стиль-то ведь есть! И размах - тоже. И не отговаривайте его от занятий программированием. Как раз из таких целеустремленных и настойчивых ребят толк и выходит...

 Мои советы:
 -разберись с оператором with ... do
 -никогда не юзай goto
 -изучай английский, читая хотя бы Help Delphi и документацию по WinAPI со словарем в руках - через 2 недели забудешь, что читаешь по-английски.
 -посмотри, как выглядит файл *.dpr (меню Project|View Source) и научись создавать объекты во время исполнения программы с помощью конструкторов Create. Научись их уничтожать с помощью метода Free. И разберись в процессе изучения этих вещей, что значит "утечка ресурсов", когда объект создан, но не уничтожен. Пойми, что такое Owner у класса TComponent и что такое Parent у TControl, особенно у TWinControl.
 Пойми, что Form1 - это всего лишь указатель (Pointer) на экземпляр объекта типа TForm1 в памяти. И что Label1 в программном тексте это тоже указатель, а не просто свойство Name в объект-инспекторе.

 А вообще ты молодец. Постарайся найти способ решать задачи до того, как сядешь за монитор (то есть проектировать на бумаге). Тогда горы свернешь... Главное - научиться экономить свое время и не тратить его попусту. И еще - спорт не помешает, а то в 12 лет можно испортить здоровье, если все время за компом сидеть. Это как пить дать.


 
SeriousSam ©   (2004-03-18 20:07) [102]

спасибо. понятно.


 
SeriousSam ©   (2004-03-21 21:59) [103]

и так. теперь у проги есть сайт (оцените плиз) - http://base.serious.net.ru

в новой версии можно импортировать базу в exel и вобще изменений много. смотрим.


 
SeriousSam ©   (2004-03-21 22:00) [104]

и так. теперь у проги есть сайт (оцените плиз) - http://base.serious.net.ru

в новой версии можно импортировать базу в exel и вобще изменений много. смотрим.


 
SeriousSam ©   (2004-03-21 23:34) [105]

подскажите, как сделать импорт файла exel??



Страницы: 1 2 3 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.79 MB
Время: 0.026 c
9-1061530372
KeepeR
2003-08-22 09:32
2004.04.18
Онлайновая игра на Delphi


1-1080470722
Shopot
2004-03-28 14:45
2004.04.18
VCL.


6-1076183970
sadretro
2004-02-07 22:59
2004.04.18
как проверить все IP адресса в локалке .


14-1079870793
TT
2004-03-21 15:06
2004.04.18
Интернет-магазины


14-1080450098
dr Tr0jan
2004-03-28 09:01
2004.04.18
Целочисленное деление в С ...