Приветствую.
Ситуация следующая, возникла необходимость перевести небольшой кусок работоспособного кода (всего несколько функций) с Delphi на Си Билдер, дабы использовать его в программе написанной с помошью второго. Сразу скажу что с Си знаком плохо и переводил используя в основном встроенный Си-шный хелп.
Так вот проблемма в след.:
1) как в Си Билдере заменить оператор (или как правильно) INHERITED?
2) как заменить оператор IS и AS в конструкции типа If (TObject is TButton) Then...
ЗЫ: Соответствий по справке не нашел, других же источников информации пока не имею, прошу помощи
Здравствуйте, Аноним, Вы писали:
А>Приветствую. А>Ситуация следующая, возникла необходимость перевести небольшой кусок работоспособного кода (всего несколько функций) с Delphi на Си Билдер, дабы использовать его в программе написанной с помошью второго. Сразу скажу что с Си знаком плохо и переводил используя в основном встроенный Си-шный хелп. А>Так вот проблемма в след.: А>1) как в Си Билдере заменить оператор (или как правильно) INHERITED? А>2) как заменить оператор IS и AS в конструкции типа If (TObject is TButton) Then...
А>ЗЫ: Соответствий по справке не нашел, других же источников информации пока не имею, прошу помощи
Здравствуйте, <Аноним>, Вы писали:
А>Приветствую. А>Ситуация следующая, возникла необходимость перевести небольшой кусок работоспособного кода (всего несколько функций) с Delphi на Си Билдер, дабы использовать его в программе написанной с помошью второго. Сразу скажу что с Си знаком плохо и переводил используя в основном встроенный Си-шный хелп. А>Так вот проблемма в след.: А>1) как в Си Билдере заменить оператор (или как правильно) INHERITED? А>2) как заменить оператор IS и AS в конструкции типа If (TObject is TButton) Then...
Суть первого тоже вроде бы понял, НО так и не смог найти соответсвующую процедуру. Вот куски кода:
class TForm1 : public TForm
{
...................................
protected:
void __fastcall WMSYSCOMMAND(TMessage Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, WMSYSCOMMAND)
END_MESSAGE_MAP(TForm)
};
....................................
void __fastcall TForm1::WMSYSCOMMAND(TMessage Message)
{
if (Message.WParam == SC_MINIMIZE) {
HideItemClick(Application->MainForm); //некая описанная выше функция
exit;
}
if (Message.WParam == SC_CLOSE) {
HideItemClick(Application->MainForm);
exit;
//<<<<< тут долже был быть inherited;
}
Как наверное видно, сделанна попытка перехватить сообщение Виндовоза, отследить что собственно юзер хочет сделать и если нечто не предусмотренное, то выполнить стандартную обработку (перетаскивать окно к примеру). В данном случае я затрудняюсь сказать какую именно функцию предка следует вызывать, может Вы поможете? Исследование исходников TForm ни к чему не привело (
Re[2]: проблеммы перевода кода с Delphi на Си Билдер
Здравствуйте, The_Only, Вы писали:
T_O>Как наверное видно, сделанна попытка перехватить сообщение Виндовоза, отследить что собственно юзер хочет сделать и если нечто не предусмотренное, то выполнить стандартную обработку (перетаскивать окно к примеру). В данном случае я затрудняюсь сказать какую именно функцию предка следует вызывать, может Вы поможете? Исследование исходников TForm ни к чему не привело (
хм... чувствуется влияние VC, а нельзя дешево и сердито
Здравствуйте, The_Only, Вы писали:
T_O>Что касается 2-го вопроса — все ОК.
T_O>Суть первого тоже вроде бы понял, НО так и не смог найти соответсвующую процедуру. Вот куски кода:
T_O>
T_O>class TForm1 : public TForm
T_O>{
T_O>...................................
T_O>protected:
T_O> void __fastcall WMSYSCOMMAND(TMessage Message);
T_O> BEGIN_MESSAGE_MAP
T_O> MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, WMSYSCOMMAND)
T_O> END_MESSAGE_MAP(TForm)
T_O>};
T_O>....................................
T_O>void __fastcall TForm1::WMSYSCOMMAND(TMessage Message)
T_O>{
T_O> if (Message.WParam == SC_MINIMIZE) {
T_O> HideItemClick(Application->MainForm); //некая описанная выше функция
T_O> exit;
T_O> }
T_O> if (Message.WParam == SC_CLOSE) {
T_O> HideItemClick(Application->MainForm);
T_O> exit;
T_O>//<<<<< тут долже был быть inherited;
T_O> }
T_O>
T_O>Как наверное видно, сделанна попытка перехватить сообщение Виндовоза, отследить что собственно юзер хочет сделать и если нечто не предусмотренное, то выполнить стандартную обработку (перетаскивать окно к примеру). В данном случае я затрудняюсь сказать какую именно функцию предка следует вызывать, может Вы поможете? Исследование исходников TForm ни к чему не привело (
Здравствуйте, <Аноним>, Вы писали:
А>возникла необходимость перевести небольшой кусок кода с Delphi на Си Билдер, дабы использовать его в программе написанной с помошью второго.
А что, разве в Билдер компилятор паскаля больше не входит?