Форум: "Прочее";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];
ВнизПишем программы по русски? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.051 c