Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Внизучитесь:)) Найти похожие ветки
← →
CinCinNut © (2004-04-26 14:47) [40]всем кодам код :))))
← →
Паниковский © (2004-04-26 14:51) [41]печально ...
← →
uny (2004-04-26 14:53) [42]у польского писателя рассказ был - человек научился летать, и пробует показать людям, спецам. только разбегаться начал, ему - да вы не верно разбегаетесь!! нужно так то и так то. в конце он сумел правильно разбежаться но забыл как летать - "послушайте, да вы же не летите" - и все довольны:)
← →
Рамиль © (2004-04-26 15:05) [43]
> uny (26.04.04 14:53) [42]
Это ты к чему? Я так подозреваю, что он показывал "спецам", а не спецам.
> Игорь Шевченко © (26.04.04 14:36) [31]
А за такое не руки, а ноги, по шею.
← →
uny (2004-04-26 15:09) [44]>он показывал "спецам", а не спецам
и кто же спец? птицы?:))
← →
Dmitriy O. © (2004-04-26 15:10) [45]
> Юрий Зотов © (26.04.04 14:15) [25]
> > Dmitriy O. © (26.04.04 14:00) [19]
>
> И привет! Хорошая программа разделит участь автосхемы. Вот
> чего Вы добились.
А что за участь ? Как ни странно вам может показаться но учать у нее нормальная Даже исходя из статистики посещений Я не говорю уже о письмах заинтересованных лиц и отзывах в гостевой да и сдесь на сайте в старой версии. Поэтому я решил продолжить работу над прогой и сделать продукт который реально будет в помощь программерам.
А тем кто недоволен кодом прога моя как считаю нужным так и пишу.
> paul_k © (26.04.04 14:44)
Вощето я к вам не нанимался.
← →
Anatoly Podgoretsky © (2004-04-26 15:15) [46]Dmitriy O. © (26.04.04 15:10) [45]
Неужели тебя из себя вывели, а я думал ты стойкий боец.
← →
SPeller © (2004-04-26 15:15) [47]От жеть позорище!
СТРОИТ БЛОК-СХЕМЫ АЛГОРИТМА ПО ГОТОАОМУ РАБОЧЕМУ КОДУ. ОЧЕНЬ УДОБНА ДЛЯ УЛУТШЕНИЯ ПОНИМАНИЯ ЧУЖИХ И СВОИХ ИСХОДНИКОВ. А ТАКЖЕ БЛАГОДОРЯ ТОМУ ЧТО ВОЗМОЖНО СТРОИТЬ БЛОК-СХЕМЫ ПРЯМО ВО ВРЕМЯ НАПИСАНИЯ КОДА НЕЗАМЕНИМА ДЛЯ ОТЛАДКИ И ОПТИМИЗАЦИИ. БУДЕТ ПОЛЕЗНА НАЧИНАЮЩИМ ПРОГРАММИСТАМ ДЛЯ ПОНИМАНИЯ ЛОГИКИ ВЫПОЛНЕНИЯ КОДА. ДЛЯ ЯЗЫКОВ "ПАСКАЛЬ DELPHI" БОЛЕЕ ПОЛНУЮ ИНФОРМАЦИЮ И ИСХОДНИКИ МОЖНО ПОСМОТРЕТЬ НА САЙТЕ http://www.dmitriyo.narod.ru/
По русскому языку в аттестате школьном верочно стоит большущая двойка.
← →
SPeller © (2004-04-26 15:18) [48]Вобщем, Дима, раньше я ещё сдерживался, но теперь уже не могу — ты ЛАМЕР!!! Боже мой, и как до тебя самого это не доходит?
← →
Alx2 © (2004-04-26 15:20) [49]>Dmitriy O. © (26.04.04 15:10) [45]
Дим, фрагмент который я привел, сразу, не думая, сокращается до следующего:
For i := 1 To str Do
Begin
qrimage1.Picture.Graphic := Nil;
qrimage2.Picture.Graphic := Nil;
qrimage1.Canvas.CopyRect(rect(0, 0, 350, 1040), idiag1.Canvas, rect(0, (i - 1) * 1040, 350, i* 1040));
qrimage2.Canvas.CopyRect(rect(0, 0, 350, 1040), idiag1.Canvas, rect(350, (i - 1) * 1040, 700, i * 1040));
qrimage2.Canvas.TextOut(320, 1020, IntToStr(i));
quickrep1.Print;
End; //for
Неужели не лень тебе было писать столько вариантов? Да и в других местах тоже самое и не только это. А по такому "коду" за глюками ой как трудно охотиться будет. Тем более, твой проект за 5000 строчек ушел уже.
← →
Dmitriy O. © (2004-04-26 15:22) [50]
> Anatoly Podgoretsky © (26.04.04 15:15)
Нет просто интересен менталитет человеческой личности.
Собств чего разгорелся спор. Есть прога есть ее аудитория
Не нравится код да на здоровье. Хотя я думаю что он будет всетаки полезен в плане реализации метода отрисовки виртуальных обьектов.
← →
Игорь Шевченко © (2004-04-26 15:23) [51]
> А тем кто недоволен кодом прога моя как считаю нужным так
> и пишу.
Ты же ее выкладываешь, а не прячешь под подушкой. Будь готов к отзывам. Или прячь под подушкой.
← →
VideoLord © (2004-04-26 15:24) [52]Мда. Не перевелись еще на Руси программеры с кривыми руками.
У меня даже мои слушатели не позволяют себе писать _такой_ код.
← →
SPeller © (2004-04-26 15:27) [53]
> будет всетаки полезен в плане реализации
> метода отрисовки виртуальных обьектов.
А это как? Объясни, если не трудно. Что за виртуальные объекты?
← →
Anatoly Podgoretsky © (2004-04-26 15:32) [54]Dmitriy O. © (26.04.04 15:22) [50]
Да мне почувствовалось раздражение в ответе, что не характерно для тебя.
← →
uny (2004-04-26 15:33) [55]не хочется пить не ходи к колодцу:))
← →
app © (2004-04-26 15:34) [56]Кстати к остальным, по теме можно обсуждать код, маркетинг, но не автора кода, он об этом не просил.
Так что учтите.
← →
Dmitriy O. © (2004-04-26 15:36) [57]
> Alx2 © (26.04.04 15:20)
Блин ты думаешь я не подозревал о этом ?
Такой вид печати мне нужен для реализации неких доп фишек. Их процедура for реализовать не может.
> Игорь Шевченко © (26.04.04 15:23)
Конечно я выкладываю прогу.
Код тоже выкладываю но не для обсуждения. Кому надо именно прогу тот не обсуждает.
← →
Гарри Поттер © (2004-04-26 15:37) [58]>Поэтому я решил продолжить работу над прогой и сделать продукт
>который реально будет в помощь программерам.
Программерам дай бог поможет (хотя думаю наборот) А на форуме программистов тебя уже вроде только самые спокойные ламером не назвали. Укажи в редми своей проги что она не для программистов.
← →
Dmitriy O. © (2004-04-26 15:42) [59]
> SPeller © (26.04.04 15:18)
Ну куда уж мне Я и не говорю что я программер Более того я говорю что Я НЕ ПРОГРАММЕР ! поэтому хватит цеплятся к коду.
Он работает и делает то что от него требуется.
> Anatoly Podgoretsky © (26.04.04 15:32)
Да потому что раздражает. Один блин вооще выдал "такому человеку мол и 800 мало" Вощем послать бы его да культура не позволяет.
Другой начинает придираться к коду. Я воще на работу чтоли нанимаюсь ?
← →
}|{yk © (2004-04-26 15:45) [60]Дмитрий, так почему у вашего продукта такая низкая оценка? Не ценят?
← →
Vlad © (2004-04-26 15:46) [61]
> Да потому что раздражает
А ты думаешь других не раздражает как ты тут восхваляешь свою программу и себя самого? Ветки специально для этого создаешь.
← →
Леприкон © (2004-04-26 15:49) [62]Срочно дайте мне большую и надёжно скрывающую от чужих глаз подушку. Очень надо...
← →
Dmitriy O. © (2004-04-26 15:49) [63]
> }|{yk © (26.04.04 15:45)
Не знаю. Хотя если судить по количеству скачиваний даже скажем сдесь старой версии в кладовке то оно гораздо выше многих прог. А на Softbox рейтинг за мес 400 что не плохо.
← →
Dmitriy O. © (2004-04-26 15:51) [64]
> Vlad © (26.04.04 15:46)
Блин эту ветку завел не я. Как я уже говорил прога имеет свою стабильную нишу и к-во скачиваний и посещений моего сайта потихоньку растет.
← →
Anatoly Podgoretsky © (2004-04-26 15:51) [65]Количество скачиваний сильно зависит от подачи, а у тебя маркетинговая жилка есть. Я не смотрел описание на указаных разделах, но примерно представляю, что там написано.
← →
Vlad © (2004-04-26 15:52) [66]
> Dmitriy O. © (26.04.04 15:51) [64]
Я не про эту ветку, а про те, что ты создавал.
← →
Nous Mellon © (2004-04-26 15:56) [67]
> Я воще на работу чтоли нанимаюсь ?
Не обижайтесь, Дмитрий, но с таким отношением вас даже "воще" на работу не возьмет
← →
savva © (2004-04-26 15:57) [68]
> Dmitriy O. © (26.04.04 15:49) [63]
> А на Softbox рейтинг за мес 400 что не плохо
скажем так не за месяц, а всего за 2 недели - а это многое объясняет. Новое качают не только пользователи программы, но и программы-роботы, дабы заполучить такую же программу, на другом (пока еще мало кому известном файловом архиве).
вот если через полгода ты так же похвалишься 4-мя сотнями скачиваний в месяц - мое почтение (и все то нехорошее, что я думал, искуплю кровью. Чужой:))).
← →
Anatoly Podgoretsky © (2004-04-26 15:58) [69]Свою жалко
← →
}|{yk © (2004-04-26 16:00) [70]>А на Softbox рейтинг за мес 400 что не плохо.
ну-ну
больше года назад я выкинул свою программу в инет (версия 0,4, надоело писать), так на софтбоксе до сих пор занимает место в 7 сотне (только что глянул, интересовался только 1 месяц, потом не смотрел)
Так что этот рейтинг - полная фигня
← →
Игорь Шевченко © (2004-04-26 16:02) [71]Итак, скачал я программу. Последнюю версию.
Проверял на коде:unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TypInfo;
type
TfMain = class(TForm)
ListBox1: TListBox;
Button3: TButton;
procedure Button3Click(Sender: TObject);
private
procedure SpyMethods(AClass: TClass; Strings: TStrings);
procedure SpyRootComponentMethods(AClass: TObject; Strings: TStrings);
procedure SpyComponentMethods(AClass: TObject; Strings, Methods: TStrings);
procedure SpyInstanceMethods(AClass: TObject; Strings, Methods: TStrings);
function ParseMethodProp(AProp: PPropInfo;
const MethodName: string): string; overload;
function ParseMethodProp(AProp: PPropInfo): string; overload;
end;
var
fMain: TfMain;
implementation
uses
ChildForm;
{$R *.dfm}
{ TfMain }
type
TMethodDesc = packed record
MethodDescSize: Word;
MethodAddress: Pointer;
MethodName: ShortString;
end;
PMethodDesc = ^TMethodDesc;
TMethodTable = packed record
MethodCount: Word;
Data: TMethodDesc;
end;
PMethodTable = ^TMethodTable;
PPMethodTable = ^PMethodTable;
procedure TfMain.SpyMethods(AClass: TClass; Strings: TStrings);
var
Methods: PMethodTable;
MethodDesc: PMethodDesc;
I: Integer;
begin
Methods := PPMethodTable(PChar(AClass) + vmtMethodTable)^;
if Assigned(Methods) then begin
MethodDesc := @Methods^.Data;
for I:=0 to Pred(Methods^.MethodCount) do begin
Strings.AddObject(
Format("%s.%s", [AClass.ClassName, MethodDesc^.MethodName]),
TObject(MethodDesc^.MethodAddress));
MethodDesc := PMethodDesc(PChar(MethodDesc) + MethodDesc^.MethodDescSize);
end;
end;
if AClass.ClassParent <> nil then
SpyMethods(AClass.ClassParent, Strings);
end;
function MethodKindToString (const Value: TMethodKind): string;
const
MethodKindNames: array[TMethodKind] of string = ("procedure", "function",
"constructor", "destructor", "class procedure", "class function",
"procedure", "function");
begin
Result := MethodKindNames[Value];
end;
type
TParamDesc = packed record
Flags: TParamFlags;
ParamName: ShortString;
TypeName: ShortString;
end;
PParamDesc = ^TParamDesc;
function TfMain.ParseMethodProp(AProp: PPropInfo;
const MethodName: string): string;
var
MethodTypeData: PTypeData;
ParamCount: Integer;
ParamDesc: PParamDesc;
Param, Params: string;
ResultType: PShortString;
I: Integer;
TypeName: PShortString;
begin
MethodTypeData := GetTypeData(AProp^.PropType^);
ParamCount := MethodTypeData^.ParamCount;
ParamDesc := @MethodTypeData^.ParamList;
ResultType := PShortString(ParamDesc);
for I:=0 to Pred(ParamCount) do begin
if pfVar in ParamDesc^.Flags then
Param := "var "
else if pfConst in ParamDesc^.Flags then
Param := "const "
else
Param := "";
TypeName := PShortString(PChar(ParamDesc) + SizeOf(TParamFlags) +
Length(ParamDesc^.ParamName) + SizeOf(Char));
if pfArray in ParamDesc^.Flags then
Param := Param + Format("%s: array of %s", [ParamDesc^.ParamName,
TypeName^])
else
Param := Param + Format("%s: %s", [ParamDesc^.ParamName,
TypeName^]);
if I <> 0 then
Params := Params + "; ";
Params := Params + Param;
ParamDesc := PParamDesc(PChar(ParamDesc) + SizeOf(TParamFlags) +
Length(ParamDesc^.ParamName) + Length(TypeName^) +
SizeOf(Char) * 2);
ResultType := PShortString(ParamDesc);
end;
if Length(Params) <> 0 then
Params := "(" + Params + ")";
if MethodTypeData^.MethodKind in
[mkFunction, mkClassFunction, mkSafeFunction] then
Params := Format("%s: %s;", [Params, ResultType^])
else
Params := Params + ";";
if MethodTypeData^.MethodKind in [mkSafeProcedure, mkSafeFunction] then
Params := Params + "safecall;";
Result := Format("%s %s: %s", [
MethodKindToString(MethodTypeData^.MethodKind), MethodName, Params]);
end;
function TfMain.ParseMethodProp(AProp: PPropInfo): string;
begin
Result := ParseMethodProp(AProp, AProp^.Name);
end;
procedure TfMain.SpyInstanceMethods(AClass: TObject;
Strings, Methods: TStrings);
function GetFullMethodName(const Methods: TStrings; Address: Pointer): string;
var
I: Integer;
begin
for I:=0 to Pred(Methods.Count) do
if Pointer(Methods.Objects[I]) = Address then begin
Result := Methods[I];
Break;
end;
end;
var
Props: TPropList;
I: Integer;
NumMethods: Integer;
Method: TMethod;
FullMethodName: string;
begin
NumMethods := GetPropList(AClass.ClassInfo, tkMethods, @Props);
for I:=0 to Pred(NumMethods) do begin
Method := GetMethodProp(AClass, Props[I]);
if Assigned(Method.Code) then begin
FullMethodName := GetFullMethodName(Methods, Method.Code);
if Length(FullMethodName) <> 0 then
Strings.Add (ParseMethodProp(Props[I], FullMethodName));
end;
end;
end;
procedure TfMain.Button3Click(Sender: TObject);
var
Strings: TStrings;
begin
Strings := TStringList.Create;
try
SpyRootComponentMethods(fChild, Strings);
ListBox1.Items.Assign(Strings);
finally
Strings.Free;
end;
end;
procedure TfMain.SpyComponentMethods(AClass: TObject;
Strings, Methods: TStrings);
var
I: Integer;
begin
SpyInstanceMethods(AClass, Strings, Methods);
if AClass is TComponent then
for I:=0 to Pred(TComponent(AClass).ComponentCount) do
SpyComponentMethods(TComponent(AClass).Components[I], Strings, Methods);
end;
procedure TfMain.SpyRootComponentMethods(AClass: TObject;
Strings: TStrings);
var
MethodStrings: TStrings;
begin
MethodStrings := TStringList.Create;
try
SpyMethods(AClass.ClassType, MethodStrings);
SpyComponentMethods(AClass, Strings, MethodStrings);
finally
MethodStrings.Free;
end;
end;
end.
← →
savva © (2004-04-26 16:03) [72]даа.. а если глянуть статистику http://www.softbox.ru/?a=24&i=4092 то напрашивается вопрос: откуда у программы 297-92=205 скачиваний за сутки?
> Anatoly Podgoretsky © (26.04.04 15:58) [69]
> Свою жалко
свою кровь что-ли? да всю уже выпили:))
← →
savva © (2004-04-26 16:04) [73]кажись я торможу..
← →
Dmitriy O. © (2004-04-26 16:05) [74]
> Nous Mellon © (26.04.04 15:56)
Ну вот только давайте не будем. У нас возьмут более того я из-за отсутсвия программеров Сам пишу проги для предприятия и они представте себе работают люди ими довольны.
← →
Игорь Шевченко © (2004-04-26 16:10) [75]Теперь впечатления:
Автосхема показывает 11 функций. В программе их 9.
При попытке нажать на кнопку "Схема" при одной выбранной функции выводится сообщение "Нет больше выбранного".
После того, как для одной функции путем танцев с бубном удалось получить схему, попытка выбора другой функции и нажатия на кнопку "Схема" показывает сообщение: "Ни чего не выбрано".
При третьей попытке нажать на кнопку "Схема" программа выдает Access Violation.
при выборе закладки "Печать" появляется сообщение: "Всего 1 страниц" и две кнопки "Yes" и "No".
У меня вопрос к автору: тебе самому не стыдно предлагать другим людям подобное творчество ?
← →
Nous Mellon © (2004-04-26 16:10) [76]
> Ну вот только давайте не будем. У нас возьмут более того
> я из-за отсутсвия программеров Сам пишу проги для предприятия
> и они представте себе работают люди ими довольны.
Да я не спорю - пусть работают. Неужели тебе самому нравится свой код?
Неужели никогда не было мысли: "блин, ну это же так ужасно. Надо сесть и переписать!"? Если не было то ты действительно не программист.
← →
Dmitriy O. © (2004-04-26 16:16) [77]
> Игорь Шевченко © (26.04.04 16:10)
Ну исправлю сразу все глюки выловить невозможно.
> Nous Mellon © (26.04.04 16:10)
Вот вопрос конкретно что не нравится в коде ?
Приведи хотябы кусок со своим фи тока не из акции "basa"
Там мне он тоже не нравится но так получилось. Потом исправлю.
← →
Nous Mellon © (2004-04-26 16:26) [78]
> Вот вопрос конкретно что не нравится в коде ?
Я не секачивал твою прогу но есть все основания утверждать(по тому что есть в ветке) что код, мягко говоря, не очень оптимизированный. См.
> [49] Alx2 © (26.04.04 15:20)
И знаешь, вот если бы ты не заявлял постинги типа "Во я крут" отношение к тебе было бы совсем другим.
← →
Vlad © (2004-04-26 16:26) [79]
> Dmitriy O. © (26.04.04 16:16) [77]
>
> > Игорь Шевченко © (26.04.04 16:10)
> Ну исправлю сразу все глюки выловить невозможно.
Бог с ним, с кодом, но зачем выкладывать прогу, если она нормально не оттестирована ? Шаг влево, шаг вправо - баг.
А потом еще орать, мол вот у меня супермегапрога !
← →
Игорь Шевченко © (2004-04-26 16:26) [80]
> Ну исправлю сразу все глюки выловить невозможно.
Тем более, в так написанном коде.
Страницы: 1 2 3 4 5 6 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.074 c