Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.78 MB
Время: 0.039 c
1-1080448960
AmazedDexter
2004-03-28 08:42
2004.04.18
Вставка рисунка


3-1080124479
Dark Elf
2004-03-24 13:34
2004.04.18
Непонятки с отчётом


6-1076921072
nazgul
2004-02-16 11:44
2004.04.18
ServerSoket и ClientSoket... #каналы


1-1080638553
Basilio
2004-03-30 13:22
2004.04.18
Можно ли сохранять/загружать из файла множества? (set of ...)


1-1080326176
ser_ega
2004-03-26 21:36
2004.04.18
Печать текста!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский