Форум программистов, компьютерный форум CyberForum.ru

Переписать код Delphi в С++ - C++

Восстановить пароль Регистрация
 
AndyHell
 Аватар для AndyHell
5 / 5 / 0
Регистрация: 18.04.2010
Сообщений: 20
16.12.2010, 17:16     Переписать код Delphi в С++ #1
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
procedure Add2History(const aURL:string); 
var idx:integer;
begin 
  with Form5.RibbonComboBox1 do 
    begin 
      idx:=Items.IndexOf(aURL); 
      case idx of 
        -1:Items.Insert(0,aURL); 
         0:exit; 
      else 
        Items.Move(idx,0); 
      end; 
    end; 
end; 
procedure TForm5.act_openurlExecute(Sender: TObject); 
begin 
  ShellExecute(Application.Handle, 
   PChar('open'), 
   PChar(RibbonComboBox1.Text), 
   PChar(0), 
   nil, 
  SW_NORMAL); 
  Add2History(RibbonComboBox1.Text); 
end; 
procedure TForm5.act_openurl_defExecute(Sender: TObject); 
begin 
  WebBrowser1.Navigate(RibbonComboBox1.Text); 
  Add2History(RibbonComboBox1.Text); 
end;
у меня в с++ Builder получился следующий код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void __fastcall TForm1::cmd_openurlExecute(TObject *Sender)
{
ShellExecute(NULL,"open",RibbonComboBox1->Text,NULL,NULL,SW_SHOWNORMAL);
Add2History(RibbonComboBox1->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::cmd_openurl_defExecute(TObject *Sender)
{
WebBrowser1->Navigate(RibbonComboBox1->Text);
Add2History(RibbonComboBox1->Text);
}
//---------------------------------------------------------------------------
void __fastcall Add2History(AnsiString aURL)
{
int idx;
        idx=Form1->RibbonComboBox1->Items->IndexOf(aURL);
        switch (idx) 
        {
            case '-1': Form1->RibbonComboBox1->Items->Insert(0,aURL);
            break;
            case '0': exit;
            break;    
            default: Form1->RibbonComboBox1->Items->Move(idx,0);
        }
}
я не совсем уверен, что функцию Add2History правильно написал, и ещё компилятор ругается на

C++
1
ShellExecute(NULL,"open",RibbonComboBox1->Text,NULL,NULL,SW_SHOWNORMAL);
Пишет
C++
1
2
3
4
5
[BCC32 Error] Unit1.cpp(21): E2034 Cannot convert 'wchar_t *' to 'const char *'
  Full parser context
    Unit1.cpp(18): parsing: void _fastcall TForm1::cmd_openurlExecute(TObject *)
[BCC32 Error] Unit1.cpp(21): E2342 Type mismatch in parameter 'lpFile' (wanted 'const char *', got 'wchar_t *')
  Full parser context
Помогите подправить пожалуйста.

Добавлено через 1 час 2 минуты
Разобрался со всем, кроме
C++
1
ShellExecute(NULL,"open",RibbonComboBox1->Text,NULL,NULL,SW_SHOWNORMAL);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2010, 17:16     Переписать код Delphi в С++
Посмотрите здесь:

Переписать код C++
Переписать код с Си C++
C++ Переписать с Delphi на C++
C++ переписать код с++
Переписать код с Паскаля на С++ C++
Пытаюсь переписать код с циклом for, в код с циклом while, но не совсем получается C++
Переписать код с функцией C++
C++ Переписать код

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 01:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru