Jump to content


Photo

Deprecated Ctl3D


  • Please log in to reply
1 reply to this topic

#1 FGarcia

FGarcia

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 687 posts
  • LocationMéxico

Posted 06 May 2012 - 01:20 PM

He vuelto a retomar Lazarus (v 0.9.31) en la version de CodeTyphon 2.6 y haciendo referencia a este hilo http://www.delphiacc...lar-un-paquete/ es que inicio este mensaje nuevamente con el mismo componente CPortLaz 1.0.0.

Como se menciona en el hilo referenciado al intentar instalar el componente se genera un error en la instalacion con las property Ctl3D; si se comentan las lineas donde se hace mencion a esas propiedades ya no aparece el mensaje de error sin embargo mas adelante aun existen referencias a la misma y aparece este mensaje:

C:\codetyphon\lazarus\components\cportlaz\CPortCtl.pas(1753,16) Error: Identifier not found "Ctl3D"
C:\codetyphon\lazarus\components\cportlaz\CPortCtl.pas(1765,16) Error: Identifier not found "Ctl3D"




delphi
  1. if FBorderStyle = bsSingle then
  2.     begin
  3.       if [b]Ctl3D[/b] then
  4.         Border := SM_CXEDGE
  5.       else
  6.         Border := SM_CXBORDER;
  7.       NewWidth := NewWidth + 2 * GetSystemMetrics(BORDER);
  8.     end;



Buscando en internet encontre un mensaje similar pero no entiendo la solucion. ¿Podrian ayudarme?

So I just created that property, instead of inheriting it, and I kept it there.
Everything now works fine, but the maintainer of CPortLaz should fix
the code on the Lazarus CCR.
Anyone knows him?


Aclaro que Ctl3D (dll o que se yo!)  es algo ya obsoleto segun lo que he leido asi que solo queda como "legacy" en Delphi  pero en Lazarus al parecer fue eliminado definitivamente.


  • 0

#2 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4111 posts
  • LocationMadrid - España

Posted 06 May 2012 - 04:03 PM

¿Porqué no le metes mano a ese código y eliminas las referencias a CTL3D?:



delphi
  1. if FBorderStyle = bsSingle then
  2.     begin
  3. //      if [b]Ctl3D[/b] then
  4. //        Border := SM_CXEDGE
  5. //      else
  6.         Border := SM_CXBORDER;
  7.       NewWidth := NewWidth + 2 * GetSystemMetrics(BORDER);
  8.     end;
  9. ..........................



Y así con todas...

O quizás sea mas sencillo hacer CTL3D:= false en algún sitio estratégico de ese código. Puede ser una variable tipo  boolean o incluso una constante...  Revísalo no creo que sea muy complicado.


Saludos.
  • 0




IP.Board spam blocked by CleanTalk.