Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2011, 18:42   #1
Андрей_1992
 
Регистрация: 11.01.2011
Сообщений: 2
По умолчанию Бесплатные видео уроки по Delphi

Всем привет. Давно читаю ваш форум, как недавно начавший изучать Delphi, хочу спросить бывают ли такие уроки, как на этом сайте http://masterlite.delphicomponent.ru/ ? По мне, так такие уроки это просто находка, наглядно смотреть как делать свои функции или программы... такие уроки заслуживают должного вниамния
Андрей_1992 вне форума Ответить с цитированием
Старый 11.01.2011, 18:50   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Лучшее средство для обучения - это не видеокурсы, а маны и сорсы. Маны всегда расскажут о том, для чего каждый параметр и к чему может привести то, или иное. Грызть сорцы полезно для того, чтобы научиться нестандартным методам, например:
Код:
if (cmd[1] == RESET)
{((void(*)(void))0)();}
Видео плохо тем, что там рассматривается только один пример и то, без всякой магии.

Так что курите маны, грызите сорцы и спрашивайте, если что-то непонятно.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 11.01.2011, 18:58   #3
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

Alex Cones, согласен, но обычно новичкам и этого хватает чтобы написать свое "Число строк в мемо". Автор молодец, что не на депозит или летитбит слил. Щас докачаю, посмотрю как там За старания спасибо.
ПС:
Код:
if (cmd[1] == RESET)
{((void(*)(void))0)();}
Это ты обфускатором прошелся по коду?
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 11.01.2011, 19:04   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

101-ый самый неочевидный способ вызвать Access Violation at 0x00000000 на С:

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Код:
if (cmd[1] == RESET)
{((void(*)(void))0)();}
Ты точно уверен, что учить Дельфи стоит начать именно с этого?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 11.01.2011, 19:08   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Ты точно уверен, что учить Дельфи стоит начать именно с этого?
А вы уверены, что такое не попадется в коде и новичек не будет рвать на себе волосы, крича, что "мы такое не проходили! нам не давали этот материал!".
Цитата:
Это ты обфускатором прошелся по коду?
Не, это старый прикол:
спойлер:

void(void) - функция, не возвращающая ничего,
void(*)(void) - указатель на такую функцию, (void(*)(void))0 - преобразование числа 0 в указатель на такую функцию - то есть функция по адресу 0
((void(*)(void))0)() - вызов функции без параметров и возврата по адресу 0, то есть фактически, это такой call 00h средствами Си. Переход по указателю 0 - стандартный способ перезагрузки на многих платформах.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 11.01.2011, 19:10   #6
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
А вы уверены, что такое не попадется в коде
В коде. На Дельфи. Такое. Не попадется. Ну разве что в камментах )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 11.01.2011, 19:14   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
В коде. На Дельфи. Такое. Не попадется. Ну разве что в камментах )
Отойдите от компьютера на два шага, прикройте правый (хотя лучше левый) глаз. А теперь представьте практически такую же конструкцию на дельфи. Когда я подумал о запутанном коде - эта цитата (я имею в виду код) пришла в голову первой. Если подумать, то можно привести аналогичные примеры на дельфи. Суть в том, что попадется то, что в видеоуроках не освещалось и что будет делать новичек? Правильно, пойдет на форум флудить сообщениями типа "АААаАааа!!!адынадын мы такое не праходили! У нас одналекция была и фсе, а надо курсовую писать! ололоо!"
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 11.01.2011, 19:24   #8
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию

В основном все уроки по делфи которые есть - работа с инспектором из кода
Да и самый сложный алгоритм можно разложить на 10 простых. В наше 2-6 ядерное время компьютер не будет возражать на это. Ну а курс подойдет впринципи для новечков не ленивых)) Есть вообще курсы Макрушина, Любаева) Отзывы разные. Но все курсы на новечков ориентированы.
Ненавижу быть как все, но люблю, чтобы все были как я.
MyLastHit вне форума Ответить с цитированием
Старый 11.01.2011, 19:30   #9
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

не.. на Дельфи это будет понятней по-любому )

Код:
type
  void = procedure();
begin
  void(0)();
end;
Все просто и ясно, даже для новичка ) Андрюха, видишь, вот тебе и первый видеоурок. Не отключайся от нашего чата )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 11.01.2011, 19:50   #10
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

http://programmersforum.ru/showthread.php?t=114606
Наши тоже не отстают:
Код:
if Length(PP.curdir)<36 then
pt:=' '+PP.curdir+' '
else pt:=' \...'+Copy(PP.curdir,Length(PP.curdir)-30,31)+' ';
Ptr:=PP.f_ptr;
if PP.vol='' then PP.vol:='No Label';
WriteString(1,cc+(40-length(pt)) div 2,pt,Pal[8]);
WriteString(22,cc+1+(cc*(34-length(PP.vol))) div 40,'['+PP.vol+']',Pal[7]);
if PP.vol='No Label' then  PP.vol:='';
{if PP.empty then exit;}
inc(ptr,sizeof(filrec)*row);
for i:=row to n+row do begin
if (i <PP.files) and (not PP.empty) then begin fname:=ptr^.filename;
{if (ptr^.fileattr and 16) = 0 then StrLwr(fname);}
if (Ptr^.fileattr and 2) <> 0 then fname[1]:=upcase(fname[1]);
if ((Ptr^.fileattr and Hidden) <> 0) and (Pos('.',Fname)>0) then fname[Pos('.',Fname)+1]:=upcase(fname[Pos('.',Fname)+1]);
SortFIle(fname);
for a := length(fname) to 11 do fname:=fname+' ';
fname:=fname+'│';
if (Ptr^.fileattr and 16) = 0 then Str(Ptr^.filesize:10,pt)
else if fname[1]='.' then pt:='UP──-DIR'
     else pt:='SUB─-DIR';
fname:=fname+pt+'│';
DateTimeCnv(pt,Ptr^.filedttm);
fname:=fname+pt;     {SetFattr}
if Ptr^.selected then WriteString(2+i-row,cc,fname,Pal[1]) else
WriteString(2+i-row,cc,fname,Pal[2]);
inc(ptr,sizeof(filrec));
end
else WriteString(2+i-row,cc,'            │          │        │     ',Pal[1]);
end;
end;
procedure Put_File(PP:Panel;cc,row,x:word;active:boolean);
var
fname,pt:string;
{ptr:P_filrec;}
begin
if PP.empty then exit;
ptr:=PP.F_ptr;
inc(ptr,sizeof(filrec)*(row+x));
fname:=ptr^.filename;
{if (ptr^.fileattr and 16) = 0 then StrLwr(fname);}
if (Ptr^.fileattr and 2) <> 0 then fname[1]:=upcase(fname[1]);
if ((Ptr^.fileattr and Hidden) <> 0) and (Pos('.',Fname)>0) then fname[Pos('.',Fname)+1]:=upcase(fname[Pos('.',Fname)+1]);
SortFile(fname);
for a := length(fname) to 11 do fname:=fname+' ';
fname:=fname+'│';
if (Ptr^.fileattr and 16) = 0 then Str(Ptr^.filesize:10,pt)
else if fname[1]='.' then pt:='UP──-DIR'
     else pt:='SUB─-DIR';
fname:=fname+pt+'│';
DateTimeCnv(pt,Ptr^.filedttm);
fname:=fname+pt;
if active then If Ptr^.selected then WriteString(2+x,cc,fname,Pal[3]) else
WriteString(2+x,cc,fname,Pal[4])
else if Ptr^.selected then WriteString(2+x,cc,fname,Pal[1]) else
WriteString(2+x,cc,fname,Pal[2])
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео Уроки Делфи Lemo Обсуждение статей 5 18.05.2010 17:17
Видео уроки Neymexa Помощь студентам 1 26.11.2008 00:01