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

Вниз

Пишем программы по русски?   Найти похожие ветки 

 
Kolan ©   (2006-12-04 23:57) [0]

В проделжение темы про паттерны и про BDS. Гы, теперь вот и такое компилируется:

TForm3 = class(TForm)
   BitBtn1: TBitBtn;
   BitBtn2: TBitBtn;
   procedure BitBtn2Click(Sender: TObject);
   procedure BitBtn1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   ЦелоеЧисло: Integer;
 end;

var
 Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.BitBtn2Click(Sender: TObject);
begin
 ЦелоеЧисло := 10;
 ShowMessage(IntToStr(ЦелоеЧисло));
end;


Да к возможности отношусь очень положительно, а к тому чтобы ее использовать в реальных приложениях - крайне отрицательно.

ЗЫ
 Сор, если это боян...


 
Petr V. Abramov ©   (2006-12-05 00:07) [1]

Borland догнал по фичам 1С


 
Kolan ©   (2006-12-05 00:09) [2]

> [1] Petr V. Abramov ©   (05.12.06 00:07)
> Borland догнал по фичам 1С

Имхо тут совсем другое дело. В 1С происходит тупой перевод в  Бэйсик..


 
Petr V. Abramov ©   (2006-12-05 00:21) [3]

а БДСМ переводит в МСИЛ. разница ы чем??? даже если win32, то, будь уверен, что русский, что инглдицкий идент - одно и то же. памяти под небольшое кол-во таблиц у компайлера возрастет, но не на столько, на сколько ВДСМ требует больше, чем Д7


 
Marser ©   (2006-12-05 00:29) [4]


> Petr V. Abramov ©   (05.12.06 00:21) [3]
> а БДСМ переводит в МСИЛ.

Куда BDSM переводит? :-)


 
Petr V. Abramov ©   (2006-12-05 01:02) [5]

в MSIL должна :)


 
DrPass ©   (2006-12-05 01:13) [6]


> Да к возможности отношусь очень положительно, а к тому чтобы
> ее использовать в реальных приложениях - крайне отрицательно

А ты прояви фантазию:

if Проверить(Маша, ОднаДома) = Да_Совсем_Одна then
begin
Купить([Цветы, Конфеты, Водка]);
Такси(Маша);
end


 
Petr V. Abramov ©   (2006-12-05 01:36) [7]

> DrPass ©   (05.12.06 01:13) [6]
 то, что между begin и end правильная среда разработки сама сгенерить должна, и потанцевать тоже. программисту должно остаться суть реализовать.


 
Джо ©   (2006-12-05 01:38) [8]

> [6] DrPass ©   (05.12.06 01:13)
> if Проверить(Маша, ОднаДома) = Да_Совсем_Одна then
> begin
> Купить([Цветы, Конфеты, Водка]);
> Такси(Маша);
> end

Run-time error: Access Violation at [Маша].
:D


 
Petr V. Abramov ©   (2006-12-05 01:40) [9]

> Джо ©   (05.12.06 01:38) [8]
либо неверный алгоритм, либо мало опыта :)))))))))


 
Джо ©   (2006-12-05 01:41) [10]

> [9] Petr V. Abramov ©   (05.12.06 01:40)
> > Джо ©   (05.12.06 01:38) [8]
> либо неверный алгоритм, либо мало опыта :)))))))))

Нет, машин муж вернулся из коммандировки :~(


 
Игорь Шевченко ©   (2006-12-05 10:11) [11]

Боян.

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1091


 
DevilDevil ©   (2006-12-05 13:01) [12]

Господа, ни кто не знает DEFINE-ы в Delphi ещё не введён/не собираются вводить?


 
clickmaker ©   (2006-12-05 13:11) [13]


> [12] DevilDevil ©   (05.12.06 13:01)

$DEFINE уже давно есть


 
DevilDevil ©   (2006-12-05 13:17) [14]

#define INIT_STCNT if(START==DEF_VALUE)START=0;if(Count==DEF_VALUE)Count=FRowsCount;
#define INC_POINTERS  M_I++;R++;}
#define SORT_NEXT_START if(ArraySorting&&CurrentColumnArrayIndex<MAX_INDEX){int Ind=CurrentColumnArrayIndex,L=0,CNT;while(L<Count){CNT=1;while((L+CNT)<Count&&(
#define SORT_LAST_PART if(CNT>1){SortColumn(COLUMN_ARRAY[++CurrentColumnArrayIndex],Order,START+L,CNT);CurrentColumnArrayIndex=Ind;}L+=CNT;}}free(Memory);
#define SORT_NEXT_END ))CNT++; SORT_LAST_PART
#define SORT_END_OBJ )){delete Memory[L+CNT].OBJ; CNT++;} delete Memory[L].OBJ; SORT_LAST_PART
#define RESTORE_ROWS M_I=Memory;R=(int*)(FRows.Memory+START); for(int i=0;i<Count;i++){*R=(int)M_I->Row; INC_POINTERS
#define RESTORE_ROWS_OBJ M_I=Memory;R=(int*)(FRows.Memory+START); for(int i=0;i<Count;i++){*R=(int)M_I->Row; delete M_I->OBJ; INC_POINTERS
#define FIRST_PART TRow*CurRow;int*R;M_I=Memory;R=(int*)(FRows.Memory+START); for(int i=0;i<Count;i++){M_I->Row=CurRow=(TRow*)(*R);
#define RESTORE_AND_SORT_NEXT_OBJ RESTORE_ROWS SORT_NEXT_START *Memory[L].OBJ==*Memory[L+CNT].OBJ SORT_END_OBJ


 
DevilDevil ©   (2006-12-05 13:22) [15]

Я понимаю, что то же самое можно при помощи {$Include SomeFile} реализовать... но Дифайны с параметрами так не реализуешь. Да и файлы создавать - плохое решение

P.S. инлайны не предлагать :)


 
Vga ©   (2006-12-05 13:23) [16]

Ты имеешь в виду макросы? Лучше не надо...


 
Gero ©   (2006-12-05 13:27) [17]

> [14] DevilDevil ©   (05.12.06 13:17)

Какой понятный код.


 
Vga ©   (2006-12-05 13:27) [18]

> [17] Gero ©   (05.12.06 13:27)

Точно, я о том же.


 
Игорь Шевченко ©   (2006-12-05 13:31) [19]

Всем, кто пишет на С идентификаторы с большой буквы, срочно переквалифицироваться в управдомы


 
Vga ©   (2006-12-05 13:37) [20]

> [19] Игорь Шевченко ©   (05.12.06 13:31)

Это не си, это билдер с висиэльной идеологией именования...


 
DevilDevil ©   (2006-12-05 13:50) [21]


> Gero ©   (05.12.06 13:27) [17]
>
> > [14] DevilDevil ©   (05.12.06 13:17)
>
> Какой понятный код.


А вот так понятнее:

//-------------  сортировка TItsFixed -----------------------------------------
void __fastcall TInfoTable::SortFixed(int Column, bool StdOrder, int START, int Count)
{
 INIT_STCNT
 T_FIXED *M_I, *Memory = FIXED_ARRAY(Count);

// цикл по i по всем строкам; Row (= CorRow) заполняется автоматически
 FIRST_PART
   M_I->OBJ = new TItsFixed(CurRow->Items[Column]->Text.c_str());
 INC_POINTERS
// <-- цикл

// сортировка
 FixedQuickSort(Memory, Count, StdOrder);
// восстановить отсортированные строки, освободить память, занимаемую массивом

RESTORE_AND_SORT_NEXT_OBJ
}


 
clickmaker ©   (2006-12-05 13:53) [22]


> // цикл по i по всем строкам; Row (= CorRow) заполняется
> автоматически
>  FIRST_PART

вот это называется "программить по-русски" ))


 
DevilDevil ©   (2006-12-05 13:54) [23]

А вот теперь представьте, что существует 12 таких сортировок, отличие которых состоит в паре строк. Попробуйте реализовтаь (а потом месяц отлаживать) без макросов.


 
DevilDevil ©   (2006-12-05 13:55) [24]

Sorry, я поинтересовался о нововведениях кроме UNICODE.


 
Игорь Шевченко ©   (2006-12-05 14:00) [25]


> А вот так понятнее:


Так тоже непонятнее


> А вот теперь представьте, что существует 12 таких сортировок,
>  отличие которых состоит в паре строк. Попробуйте реализовтаь
> (а потом месяц отлаживать) без макросов.


Да запросто. Шаблоны - рулез. Паттерны - дважды рулез. Макросы - маст дай.


 
Vga ©   (2006-12-05 14:01) [26]

> [21] DevilDevil ©   (05.12.06 13:50)

Нет, не понятнее. И любому, кроме разработчика, придется гонять по файлу туда-сюда в поисках макросов. А еще кое-что против макросов упоминалось в статье "Как заставить неправильный код выглядеть неправильно"
http://local.joelonsoftware.com/mediawiki/index.php/Как_заставить_неправильный_код_выглядеть_неправильно


 
DevilDevil ©   (2006-12-05 14:02) [27]

> Шаблоны,  Паттерны

Что из себя представляют, где почитать, с какой версии появились?


 
Vga ©   (2006-12-05 14:05) [28]

> [27] DevilDevil ©   (05.12.06 14:02)

Про шаблоны - в любом (или почти любом) учебнике по C++. В Delphi отсутствуют.
Про паттерны ничего не скажу, единственное что мне казалось, это не языковой инструмент.


 
Игорь Шевченко ©   (2006-12-05 14:06) [29]

DevilDevil ©   (05.12.06 14:02) [27]

Шаблоны в С++ появились с первой версии, насколько я помню (template)
Паттерны в языке С++ не появились, про паттерны написали книжку Эрих Гамма и товарищи.
Раз сортировка - она одна, то разумно ее вынести в один класс и не мучится.


 
DevilDevil ©   (2006-12-05 14:11) [30]

> Игорь Шевченко ©   (05.12.06 14:06) [29]

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

Мой подвопрос предлагаю закрыть, я интересовался по поводу Delphi.


 
Игорь Шевченко ©   (2006-12-05 14:15) [31]


> Сортировка далеко не совсем одна


> А вот теперь представьте, что существует 12 таких сортировок,
>  отличие которых состоит в паре строк


Как прикажешь тебя понимать, Саид ?



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

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

Наверх




Память: 0.54 MB
Время: 0.1 c
15-1164996815
ArtemESC
2006-12-01 21:13
2006.12.24
Задачки по физике...


2-1165223382
gdaujk
2006-12-04 12:09
2006.12.24
Как программно открыть "Мой компьютер"?


15-1164959291
вразлет
2006-12-01 10:48
2006.12.24
Задача


3-1160652534
REA
2006-10-12 15:28
2006.12.24
Rollback Retaining


2-1165170402
redlord
2006-12-03 21:26
2006.12.24
GDI+. Tbitmap как источник для graphics.DrawImage