Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-05-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Seguramente es porque, precisamente, son constantes y no se les puede cambiar su valor.
¿Has probado si funciona igual si no son const?
Responder Con Cita
  #2  
Antiguo 28-05-2018
Avatar de geolife
[geolife] geolife is offline
Miembro Premium
 
Registrado: nov 2006
Ubicación: Barcelona
Posts: 88
Poder: 18
geolife Va por buen camino
Hola Casimiro!

Si, acabo de probar usando un Var en vez de Const; y tenemos el mismo resultado. Adjunto el ejemplo simplificado con puntero y sin el, en el primer caso Showmessage funciona bien, en el segundo caso no lo hace...

Código Delphi [-]
unit U_Translate;
interface
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
  public
  end;

  Resourcestring
  RS1 = 'Primavera';  RS2 = 'Verano'; RS3 = 'Otoño'; RS4 = 'Invierno';

var
  Form1: TForm1;
  CEstacion: Array [1..4] of String = (RS1,RS2,RS3,RS4); // Normal
  PCEstacion: Array [1..4] of ^String = (@RS1,@RS2,@RS3,@RS4);  // Puntero

implementation {$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 ShowMessage (CEstacion[1]);
 ShowMessage (PCEstacion[1]^);
end;

end.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Seguramente es porque, precisamente, son constantes y no se les puede cambiar su valor.
¿Has probado si funciona igual si no son const?
Responder Con Cita
  #3  
Antiguo 28-05-2018
Avatar de geolife
[geolife] geolife is offline
Miembro Premium
 
Registrado: nov 2006
Ubicación: Barcelona
Posts: 88
Poder: 18
geolife Va por buen camino
@Neftali [Germán.Estévez] ; @Casimiro Notevi

Gracias por vuestra ayuda, finalmente al plantear también la cuestión en stackoverflow hay un camino que sugiere Stefan Glienke y lo dejo aquí compartido, por si cualquiera se encuentra ante el mismo problema.

https://stackoverflow.com/questions/...resourcestring

Básicamente se trata de lo siguiente:

Código Delphi [-]
Resourcestring
 RS1 = 'Primavera'; RS2 = 'Verano'; RS3 = 'Otoño'; RS4 = 'Invierno';
const
  CEstacion: array [1..4] of PResStringRec = (@RS1,@RS2,@RS3,@RS4); 
procedure show;
begin
ShowMessage(LoadResString(CEstacion[1]));
end;

Última edición por geolife fecha: 28-05-2018 a las 16:28:57.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
punteros pepe_baile C++ Builder 4 24-07-2016 11:19:57
Punteros kotai Varios 1 09-08-2010 16:26:34
uso de punteros David OOP 19 14-12-2009 09:48:37
C++ y los punteros marcoszorrilla La Taberna 3 02-06-2008 18:31:11
Punteros davitcito Varios 2 25-04-2005 22:46:24


La franja horaria es GMT +2. Ahora son las 02:07:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi