nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 18 Apr 2024 11:50



Reply to topic  [ 6 posts ] 
адаптация кода под билдер 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Есть у меня один проект - не смог добить... Исходник брал у них: http://www.codeproject.com
Если выложу кусочек - глянешь? Мне кажется я почти всё исправил,
но один момент никак не даётся... прям в ступор ввёл, за что я его, правда,
год назад забросил. :wink:


12 Apr 2011 17:52
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22534
Location: Silicon Valley
Reply with quote
Post 
Засылай

_________________
:dj: https://mastodon.social/@Shaos


13 Apr 2011 02:05
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Вопрос к Shaos-y

Вобщем непонятка случилась у меня при адаптации библиотеки CodeMax в свой проект...
Quote:
CodeMax is a powerful code edit control which supports the following features:

* DLL and ActiveX versions
* Color Syntax Highlighting
* Custom Keystroke Assignments
* Over 120 Separate Edit Commands
* Drag-and-Drop Manipulation
* Support for C++, Java, SQL, Basic, Pascal, and Custom Languages
* Multiple Splitter Views
* Unlimited Undo/Redo
* Persistent Keystroke Macros
* Auto-Indentation
* Bookmarks
* IntelliMouse Support
* Column Selection
* MFC Support


я уже сказал, где я взял пример,
http://www.codeproject.com/KB/wtl/wtleditor.aspx?msg=542087&display=Mobile
но нестыковка у меня вышла, помнится здесь:
Code:
Далее, Вам следует объявить образец объекта CodeMaxLibrary и инициализировать его.

BOOL CCodeFile::RegisterClass( HINSTANCE hInstance )
{
  // register the CodeMax edit control
  CMRegisterControl();

  WNDCLASS    wndclass;

  wndclass.style         = 0;
  wndclass.lpfnWndProc   = WndProc;
  wndclass.cbClsExtra    = 0;
  wndclass.cbWndExtra    = 0;
  wndclass.hInstance     = hInstance;
  wndclass.hIcon         = NULL;
  wndclass.hCursor       = LoadCursor( NULL, IDC_ARROW );
  wndclass.hbrBackground = NULL;
  wndclass.lpszMenuName  = NULL;
  wndclass.lpszClassName = CODEFILEWNDCLASS; // "CodeFile"

  return ::RegisterClass( &wndclass );
}

CCodeFile *pCode = new CCodeFile( this );

//--------------------
LRESULT CCodeFile::OnCreate( HWND hWnd, WPARAM wParam, LPARAM lParam )
{
  ASSERT( lParam );
  CREATESTRUCT *pcs = ( CREATESTRUCT * )lParam;
  ASSERT( pcs->lpCreateParams );
  MDICREATESTRUCT *pmcs = ( MDICREATESTRUCT * ) pcs->lpCreateParams;

  // associate the CCodeFile object with the window
  CCodeFile *pCode = ( CCodeFile * ) pmcs->lParam;

  SetWindowLong( hWnd, GWL_USERDATA, ( DWORD ) pCode );

  pCode->Initialize( hWnd );



Что-то не срослось для Билдера в этих строках. И я в упор не понял - что...

Code:
  CCodeFile *pCode = new CCodeFile( this );

  // associate the CCodeFile object with the window
  CCodeFile *pCode = ( CCodeFile * ) pmcs->lParam;


В результате должно получиться что-то типа такого...

Image

Но, видимо, не в Борланд Билдере... :(


13 Apr 2011 12:27
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22534
Location: Silicon Valley
Reply with quote
Post 
я думаю, что компилятору не нравится висящее в воздухе new:

CCodeFile *pCode = new CCodeFile( this );

надо заменить на:

CCodeFile *pCode = NULL;

и где-то в теле инициализирующей или создающей функции:

pCode = new CCodeFile( this );

_________________
:dj: https://mastodon.social/@Shaos


14 Apr 2011 03:56
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22534
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
я думаю, что компилятору не нравится висящее в воздухе new:

CCodeFile *pCode = new CCodeFile( this );

надо заменить на:

CCodeFile *pCode = NULL;

и где-то в теле инициализирующей или создающей функции:

pCode = new CCodeFile( this );


а вообще это похоже класс - значит в конструкторе

вообще это по джавовски - члены класса динамически создавать прямо в теле класса - большинство компиляторов это не поймут, а видимо студия мелкомягкая понимает - видимо специально сделали для джавистов, которые случайно на с++ кодят :roll:

_________________
:dj: https://mastodon.social/@Shaos


14 Apr 2011 06:51
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
вообще это по джавовски - члены класса динамически создавать прямо в теле класса - большинство компиляторов это не поймут, а видимо студия мелкомягкая понимает - видимо специально сделали для джавистов, которые случайно на с++ кодят

Глубако ты взглянул... :o
Quote:
Такая лютая, бешеная ненависть к фундаментальным понятиям языка не могла пройти незамеченной всякими Майкрософтами. Венцом мелкософтовской ненависти к тру Си является появление С#, который на самом деле собственная версия Жабы.

http://lurkmore.ru/C :lol:


14 Apr 2011 07:14
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 6 posts ] 

Who is online

Users browsing this forum: No registered users and 14 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.