Текущий архив: 2006.09.03;
Скачать: CL | DM;
Вниз
С такими проектами приходится работать Найти похожие ветки
← →
ArtemESC © (2006-08-11 20:48) [40]>>Jeer © (11.08.06 20:24) [37]
>>я смогу дополнить в любое время.
Буду очень благодарен...
← →
ArtemESC © (2006-08-11 20:53) [41]Jeer © (11.08.06 20:24) [37]
Помойму я не кого не оскорблял по половому признаку, если конечно, это
имелось ввиду...
← →
Медведъ (2006-08-11 21:06) [42]>ArtemESC © (11.08.06 20:53) [41]
женщина программист для джира сущ-во среднего рода
уж очень он их не любит :)
← →
Медведъ (2006-08-11 21:12) [43]>Jeer
а вообще ты на модераторов не обижайся
трудная у них работа
вот опять начали сезон охоты на медведов, всячески преседуют меня по никовому признаку
скоро придется еще один твердый знак добавлять чует сердце мое
← →
begin...end © (2006-08-11 21:19) [44]Да, не все переступают пятидесятилетний рубеж без последствий... Уже второй случай, однако...
← →
Медведъ (2006-08-11 21:23) [45]>begin...end © (11.08.06 21:19) [44]
хехе, интересно что будет с тобой на этом рубеже
← →
begin...end © (2006-08-11 21:27) [46]> Медведъ (11.08.06 21:23) [45]
Мне тоже.
← →
Карелин Артем © (2006-08-11 21:44) [47]У меня в офисе 2 женщины: программист и WEB-мастер. Обе очень даже хорошо и продуманно творят программы
← →
ArtemESC © (2006-08-11 21:50) [48]Карелин Артем © (11.08.06 21:44) [47]
>>У меня в офисе 2 женщины: программист и WEB-мастер. Обе очень >>даже .хорошо и продуманно творят программы
У них нет каких небудь странностей?
← →
Суслик © (2006-08-11 21:51) [49]Это просто проект писанный изначально на турбо или борланд паскале, потом формально переведенный на delphi
imho
← →
Карелин Артем © (2006-08-11 21:58) [50]Вот код, написанный программистом. Авторское форматирование сохранено
procedure TfNastr.FormCreate(Sender: TObject);
begin try if fDmNadz.takod_progr.Active=False then
fDmNadz.takod_progr.Active:=True; except
begin ShowMessage(OnErrorMessage); Close; end; end;
end;
procedure TfNastr.btnOdbClick(Sender: TObject);
var i,j:Integer;filNam,filNam1:String;F:TextFile;rrr:Boolean;
NameOld,NameNew,Izm:String;
begin try i:=fdmNadz.taKod_ProgrKOL_INS.Value; fUdos.DBGrid_Udos.DataSource:=nil;
fUdos.DBGrid_UdosA.DataSource:=nil; fUdos.DBGrid_OUd.DataSource:=nil;
fUdos.DBGrid_OudA.DataSource:=nil;
fUdos.taUd_f.Active:=False; fUdos.taUd_Af.Active:=False;
fUdos.taUdos.Active:=False; fUdos.taUdos_A.Active:=False;
fUdos.taGur_Udos.Active:=False; fUdos.taOUdos.Active:=False;
fUdos.taOUdos_A.Active:=False; if FileExists("c:\nadzor\ondz.gdb") then
begin with Qobl_del do
begin SQL.Clear; SQL.Add("Delete From udos");
ExecSQL; SQL.Clear;
SQL.Add("Delete From UDOS_A");
ExecSQL;
end;// with
end // if exis
else
begin
ShowMessage("Создание БД области прекращено.Отсутствует файл ONDZ.GDB");
Exit;
// тут надо или завершить приложение или все восстановить сетки табл
end; // not FileExist
// тут новый виток
begin
// ShowMessage("Начинаем переименованиие ");
j:=1;
NameNew:="c:\nadzor\ndz.gdb";
//NameNew:="ndz.gdb";
// Добавим все записи
while j<i+1 do
begin
Izm:=IntToStr(j);
NameOld:="c:\nadzor\"+Izm+"ndz.gdb";
if FileExists(NameOld) then
begin
// 3- переименовать 1NDZ.GDB в NDZ.GDB
if fdmNadz.DbNadzor.Connected then fdmNadz.DbNadzor.Close;
fdmNadz.DbNadzor.Connected:=False;
DeleteFile(NameNew);
AssignFile(F,NameOld);
Rename(F,NameNew);
fdmNadz.DbNadzor.Connected:=True;
fdmNadz.DbNadzor.Open;
// SQL.Add("Insert INTO ": ODB: UDOS" select * from ": NADZOR: UDOS"");
fUdos.Move_Ud.Execute; // run the batchmove
fUdos.Move_UdA.Execute;
J:=J+1;
end // if
else J:=J+1;
end;// while
end;//
// новый 3 виток
begin
ShowMessage("Выполнено слияние "+IntToStr(j)+" - БД");
// восстановим табл
fUdos.taUd_f.Active:=True;
fUdos.taUd_Af.Active:=True;
fUdos.taGur_Udos.Active:=True;
fUdos.taUdos.Active:=True;
fUdos.taUdos_A.Active:=True;
fUdos.taOUdos.Active:=True;
fUdos.taOUdos_A.Active:=True;
// восстановим сетки
fUdos.DBGrid_Udos.DataSource:=fUdos.dsUdos;
fUdos.DBGrid_UdosA.DataSource:=fUdos.dsOUdos_A;
fUdos.DBGrid_OUd.DataSource:=fUdos.dsOUdos;
fUdos.DBGrid_OudA.DataSource:=fUdos.dsOUdos_A;
//fUdos.DBGrid_Gur.DataSource:=fUdos.dsGur_Udos;
end;
except
MessageDlg("Ошибка!! при слиянии БД!",mtWarning,[mbOk],0);
end; // try
end; // вся процедура -конец
← →
Медведъ (2006-08-11 22:02) [51]бывает гораздо хуже
← →
Kerk © (2006-08-11 22:04) [52]Года полтора назад тут была моя ветка про суицид. И там был кусок исходника.
Так вот что я вам скажу.. фигня.. до того всем еще далекоооооооо..
← →
Джо © (2006-08-11 22:08) [53]> [52] Kerk © (11.08.06 22:04)
А шедевр не сохранился? :)
← →
Суслик © (2006-08-11 22:09) [54]а в чем проблема то?
кто нить исходники TCustomGrid разбирал?
Все вроде красиво нарисовано и глупостей очевидных нет.
Но очень нелегкий для понимания исходник.
Я это к тому, что форма не определяет содержание.
← →
Медведъ (2006-08-11 22:09) [55]у меня на работе коллега стал писать код читающий строку из ком порта (сканер штрих кода)
для определения конца данных передаваемых устройством он использовал 2 таймера, замерял вообщем интервал кросавачег :)
← →
Kerk © (2006-08-11 22:18) [56]Джо © (11.08.06 22:08) [53]
А шедевр не сохранился? :)
Обладатели старых баз могут попробовать поискать мою ветку примерно позапрошлая зима, сабж "я на грани суицида". Самому будет интересно обновить впечатления :-)
← →
Джо © (2006-08-11 22:22) [57]> [56] Kerk © (11.08.06 22:18)
Нашел: :)
Kerk © (24.01.05 10:56)
Не могу больше разбирать подобный код!!!TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[ AfoPch]).PointerNapr.Objects[AfoN]).Poin terPut.Objects[AfoPut]).KolKm:=0;
TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[AfoPch ]).PointerNapr.Objects[AfoN]).PointerPut .Objects[AfoPut]).KolPKm:=0;
for i:=0 to TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[AfoPch ]).PointerNapr.Objects[AfoN]).PointerPut .Objects[AfoPut]).PropKiloms.Count-2 do
begin
if (TPropKm(TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objec ts[AfoPch]).PointerNapr.Objects[AfoN]).P ointerPut.Objects[AfoPut]).PropKiloms.Objects[i]).Prop) or
(TPropKm(TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objec ts[AfoPch]).PointerNapr.Objects[AfoN]).P ointerPut.Objects[AfoPut]).PropKiloms.Objects[i]).Nest) then
begin
TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[AfoPch ]).PointerNapr.Objects[AfoN]).PointerPut .Objects[AfoPut]).KolPKm:=
TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[AfoPch ]).PointerNapr.Objects[AfoN]).PointerPut .Objects[AfoPut]).KolPKm+1;
j:=j+1;
end
else
TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[AfoPch ]).PointerNapr.Objects[AfoN]).PointerPut .Objects[AfoPut]).KolKm:=
TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[AfoPch ]).PointerNapr.Objects[AfoN]).PointerPut .Objects[AfoPut]).KolKm+1;
TPropKm(TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Object s[AfoPch]).PointerNapr.Objects[AfoN]).Po interPut.Objects[AfoPut]).PropKiloms.Objects[i]).Nom:=j;
end;
TPropKm(TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Object s[AfoPch]).PointerNapr.Objects[AfoN]).Po interPut.Objects[AfoPut]).PropKiloms.Objects[
TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[AfoPch ]).PointerNapr.Objects[AfoN]).PointerPut .Objects[AfoPut]).PropKiloms.Count-1]).Nom:=
TPropKm(TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Object s[AfoPch]).PointerNapr.Objects[AfoN]).Po interPut.Objects[AfoPut]).PropKiloms.Objects[
TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[AfoPch ]).PointerNapr.Objects[AfoN]).PointerPut .Objects[AfoPut]).PropKiloms.Count-2]).Nom;
TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[AfoPch ]).PointerNapr.Objects[AfoN]).PointerPut .Objects[AfoPut]).KolKm:=
TPole(TNapravl(TPch(TDorog(PointerDor.Objects[AfoDor]).PointerPCH.Objects[AfoPch ]).PointerNapr.Objects[AfoN]).PointerPut .Objects[AfoPut]).KolKm*10;
Скажите что-нибудь приятное.. чтоб жить захотелось!!!
← →
Kerk © (2006-08-11 22:24) [58]Джо © (11.08.06 22:22) [57]
Оооо.. я снова рад, что сменил работу :)))
← →
Джо © (2006-08-11 22:36) [59]> [57] Джо © (11.08.06 22:22)
Вообще, подобный код смахивает на саботаж и диверсию :)
← →
isasa © (2006-08-11 22:56) [60]Медведъ (11.08.06 22:09) [55]
2 таймера, замерял вообщем интервал кросавачег
А временной интервал получен экспериментальным путем?
Фундаментально.
← →
Marser © (2006-08-11 23:15) [61]> [55] Медведъ (11.08.06 22:09)
> у меня на работе коллега стал писать код читающий строку
> из ком порта (сканер штрих кода)
> для определения конца данных передаваемых устройством он
> использовал 2 таймера, замерял вообщем интервал
Мама моя родная....
← →
Дураг (2006-08-12 00:19) [62]
procedure TNTDScreen.ShowShapes;
var i:integer;
var Oldcol:Tcolor;
var OldBrushColor:Tcolor;
var OldFontSize:integer;
var TopCord:Tcord;
var BottomCord:Tcord;
var Rect:TRect;
var Rectsize:integer;
begin
Rectsize:=10;
Oldcol:=WritedPicture.Bitmap.Canvas.Pen.Color;
OldBrushColor:=WritedPicture.Bitmap.Canvas.Brush.Color;
OldFontSize:=WritedPicture.Bitmap.Canvas.Font.Size;
If (NTDSystem.N_Shapes>0) then
for i:=NTDSystem.N_Shapes downto 1 do
begin
if (CheckedItem.TypeOfItem=3) and (CheckedItem.IDItem=NTDSystem.Shapes[i].ID) then
WritedPicture.Bitmap.Canvas.Pen.Color:=clWhite
else
WritedPicture.Bitmap.Canvas.Pen.Color:=clBlack;
WritedPicture.Bitmap.Canvas.Brush.Color:=NTDSystem.Shapes[i].Color;
//
Rect.Left:=NTDSystem.Shapes[i].PLeft+StartCord.X;
Rect.Top:=NTDSystem.Shapes[i].PTop+StartCord.Y;
Rect.Right:=NTDSystem.Shapes[i].PRight+StartCord.X;
Rect.Bottom:=NTDSystem.Shapes[i].PBottom+StartCord.Y;
//
WritedPicture.Bitmap.Canvas.Rectangle(Rect);
WritedPicture.Bitmap.Canvas.Pen.Color:=clBlack;
WritedPicture.Bitmap.Canvas.Font.Size:=NTDSystem.Shapes[i].FontSize;
//WritedPicture.Bitmap.Canvas.TextOut(Rect.Left+2,Rect.Top+2,NTDSystem.Shapes[i].Inscription);
WritedPicture.Bitmap.Canvas.TextRect(Rect,Rect.Left+2,Rect.Top+2,NTDSystem.Shapes[i].Inscription);
TopCord.X:=Rect.Left;
TopCord.Y:=Rect.Top;
BottomCord.X:=Rect.Right;
BottomCord.Y:=Rect.Bottom;
if (CheckedItem.TypeOfItem=3) and (CheckedItem.IDItem=NTDSystem.Shapes[i].ID) then
begin
WritedPicture.Bitmap.Canvas.Pen.Color:=clWhite;
WritedPicture.Bitmap.Canvas.Brush.Color:=clLime;
//первая шашечка
Rect.Left:=TopCord.X-Rectsize;
Rect.Top:=TopCord.Y-Rectsize;
Rect.Right:=TopCord.X;
Rect.Bottom:=TopCord.Y;
WritedPicture.Bitmap.Canvas.Rectangle(Rect);
//вторая шашечка
Rect.Left:=BottomCord.X+Rectsize;
Rect.Top:=TopCord.Y-Rectsize;
Rect.Right:=BottomCord.X;
Rect.Bottom:=TopCord.Y;
WritedPicture.Bitmap.Canvas.Rectangle(Rect);
//третья шашечка
Rect.Left:=BottomCord.X+Rectsize;
Rect.Top:=BottomCord.Y+Rectsize;
Rect.Right:=BottomCord.X;
Rect.Bottom:=BottomCord.Y;
WritedPicture.Bitmap.Canvas.Rectangle(Rect);
//четвертая шашечка
Rect.Left:=TopCord.X-Rectsize;
Rect.Top:=BottomCord.Y+Rectsize;
Rect.Right:=TopCord.X;
Rect.Bottom:=BottomCord.Y;
WritedPicture.Bitmap.Canvas.Rectangle(Rect);
end;
end;
WritedPicture.Bitmap.Canvas.Pen.Color:=Oldcol;
WritedPicture.Bitmap.Canvas.Brush.Color:=OldBrushColor;
WritedPicture.Bitmap.Canvas.Font.Size:=OldFontSize;
end;
Работает. Говорят, даже не очень страшный код...
← →
Джо © (2006-08-12 00:21) [63]> Работает. Говорят, даже не очень страшный код...
Код как код. With проставить и тогда в нем даже можно будет разобраться :)
← →
Суслик © (2006-08-12 00:51) [64]зачем разбираться в коде?
моем имо, что если стоит задача поднять безобразный код, то его нужно сразу приводить в божеский вид путем рефаторинга.
← →
Marser © (2006-08-12 01:11) [65]Как же я рад, что самые глубокие изменений, которые приходилось вносить в чужой код (по работе) это добавление with и устранение бессмысленных "=true"...
← →
Суслик © (2006-08-12 01:27) [66]
> Как же я рад, что самые глубокие изменений
изучение чужого *работающего* кода (любого - хорошего и плохого) развивает больше чем чтение книг. :)
← →
Германн © (2006-08-12 01:29) [67]Был занят, освободился, зашёл на форум, читаю то, что не читал ранее. Поэтому процесс "ухода от сабжа" меня не затронул. Может кто мне глупому объяснит - что так "поразило" автора сажа в этом коде? То бишь что в этом коде особо удивительного, глупого, смешного и т.п.?
← →
Суслик © (2006-08-12 01:31) [68]
> То бишь что в этом коде особо удивительного, глупого, смешного
> и т.п.?
мне тоже этот вопрос остался неясным - код переведенка с ранних паскалей.
← →
Джо © (2006-08-12 01:37) [69]Лично мне.
1. Ну, непонятно, зачем его нужно было переводить в таком случае. Совершенно непонятно. Если уж взялись переводить, так перевели бы. А не бездумно изменили зарезерв. слово record на class.
2. Неужели досовский Паскаль запрещал сделать из m_State перечислимый тип или хотя-бы объявить константы, избавившись от глупых комментариев прямо в тексте объявления.
← →
Суслик © (2006-08-12 01:44) [70]качество и *ценность* продукта от этого не меняется :)
← →
Marser © (2006-08-12 01:45) [71]> [66] Суслик © (12.08.06 01:27)
>
> > Как же я рад, что самые глубокие изменений
>
> изучение чужого *работающего* кода (любого - хорошего и
> плохого) развивает больше чем чтение книг. :)
VCL и ИШа читать приятно. Но не все коды одинаково красивы :-)
← →
Джо © (2006-08-12 01:46) [72]> [70] Суслик © (12.08.06 01:44)
> качество и *ценность* продукта от этого не меняется :)
А тут не говорили о качестве и ценности продукта. Тут как раз о красоте кода и говорили. Если я не ошибаюсь, конечно :)
← →
Marser © (2006-08-12 01:48) [73]> 2. Неужели досовский Паскаль запрещал сделать из m_State
> перечислимый тип или хотя-бы объявить константы, избавившись
> от глупых комментариев прямо в тексте объявления.
Там boolean просится. Третий закон формальной логики :-)
← →
Германн © (2006-08-12 01:57) [74]
> Джо © (12.08.06 00:21) [63]
>
> > Работает. Говорят, даже не очень страшный код...
>
> Код как код. With проставить и тогда в нем даже можно будет
> разобраться :)
>
Не к данному примеру, а вообще.
Я очень люблю оператор with, но очень его боюсь! Поскольку при его применении "разбираемость" кода, имхо чаще всего ухудшается! И кроме того, поскольку вышеназванный оператор позволяет указывать "список ссылок на переменные", всегда есть возможность, что будет прочитано/изменено поле/свойство и т.п. не той переменной, что было надо..
За всё время на сём форуме мною было замечено только два "разумных" применений оператора with. Первое - по-моему привнес ЮЗ, когда публиковал примеры созданий в рантайм компонент.
"try
with MyComponent.Create() do
...
finally
Free;
end;
Второе не помню кто. :-( В памяти вертятся два ника, но не уверен какой именно. То ли на "s", то ли на "e"). По поводу изменения в файле проекта свойства Application.Title.
← →
Marser © (2006-08-12 01:59) [75]> "try
> with MyComponent.Create() do
> ...
> finally
> Free;
> end;
Неверно. Создание должно происходить до блока. Иначе можно огрести ещё одни грабли при освобождении в файналли ещё не созданного экземпляра.
← →
Джо © (2006-08-12 02:00) [76]Да, я тоже побаиваюсь with, если честно :)
← →
Marser © (2006-08-12 02:01) [77]> Неверно. Создание должно происходить до блока. Иначе можно
> огрести ещё одни грабли при освобождении в файналли ещё
> не созданного экземпляра.
Хотя во Free защитка имеется, сё равно некрасиво. Тем более, не факт, что переменная бкдет nil
← →
Германн © (2006-08-12 02:08) [78]
> Marser © (12.08.06 01:59) [75]
Да. Очепятался. :-( Прошу прощения у Юрия Зотова. Он писАл по другому. Но суть Германн © (12.08.06 01:57) [74] остаётся без изменений.
← →
Zeqfreed_ (2006-08-12 02:14) [79]> [74] Германн © (12.08.06 01:57)
О, это его находка? Тогда премного ему благодарен, очень удобная штука!
← →
Германн © (2006-08-12 02:16) [80]Вышеуказанное следует писАть как:
with MyComponent.Create() do try
begin
...
end;
finally
Free;
end;
Страницы: 1 2 3 вся ветка
Текущий архив: 2006.09.03;
Скачать: CL | DM;
Память: 0.65 MB
Время: 0.057 c