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 02-08-2004
mainau mainau is offline
Miembro
 
Registrado: mar 2004
Ubicación: Sevilla
Posts: 45
Poder: 0
mainau Va por buen camino
funcion , listbox y conversion

Hola foreros , buenas noches, ya estoy otra vez en un fregado a ver si me iluminais bueno al toro:

Tengo una funcion :
Código Delphi [-]
function seltext(listbox1: Tlistbox) : string;
var 
  nitem: integer;
begin
  nitem:=listbox1.itemindex;
  if nitem >= 0 then 
    Result:= listbox1.items [nitem]
  else
    Result:='';
end;
que me devuelve una cadena cuando intengo pasar esta a integer
Código Delphi [-]
 
canal := 25 + strtoint(seltext())
de esta manera me devuelve el siguiente error :

NOT ENOUGH ACTUAL PARAMETERS
no se lo que hago mal espero vuestra ayuda , gracias por todo.
__________________
Porque las estirpes condenadas a cien años de soledad nunca tendran una segunda oportunidad sobre la tierra.

Gabriel Garcia Marquez (Cien años de Soledad).

Última edición por ecfisa fecha: 11-04-2011 a las 17:06:43. Razón: ETIQUETAS [DELPHI], [/DELPHI]
Responder Con Cita
  #2  
Antiguo 02-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La función seltext que defines recibe un parámetro ¿no? Pues ¡pásaselo!

// Saludos
Responder Con Cita
  #3  
Antiguo 02-08-2004
mainau mainau is offline
Miembro
 
Registrado: mar 2004
Ubicación: Sevilla
Posts: 45
Poder: 0
mainau Va por buen camino
Talking no se puede ser mas tonto

Desde luego, no es que los arboles no medejen ver el bosque es que me he perdido en el bosque no veo ni un arbol ...



Gracias, por iluminarme y sarcarme de la estupidez mental , de nuevo gracias..


Sera el Calor ?
__________________
Porque las estirpes condenadas a cien años de soledad nunca tendran una segunda oportunidad sobre la tierra.

Gabriel Garcia Marquez (Cien años de Soledad).
Responder Con Cita
  #4  
Antiguo 11-04-2011
coej coej is offline
Miembro
NULL
 
Registrado: abr 2011
Ubicación: MANCHEGO-ESPAÑOL
Posts: 65
Poder: 14
coej Va por buen camino
Unhappy

Haber, otro más novato aún , estoy intentando capturar en una variable el contenido en texto de una Listbox, pero la verdad estoy empezando en delphi, y me pierdo, pongo el código..., no me pegueis porfavor...
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
  ListBox1: TListBox;


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a: String;
  SelItems :String;
  nItem :Integer;

implementation

{$R *.dfm}
  
   function SelText (ListBox1 : TListBox) : String;
   var
    nItem : Integer;
    begin
      nItem := ListBox1.ItemIndex;
      if nItem >= 0 then
        Result := ListBox1.Items [nItem]
      else
        Result := '';
        end;

   begin
a:= SelText(ListBox1);
end.

El error es Undeclared identifier . 'ListBox1', la verdad, se que es una tontería pero no lo pillo, me gustaría asignar a la vble a el valor seleccionado del listbox que es ListBox1 y mostrar en el mismo formulario el valor en texto..., gracias...

Última edición por ecfisa fecha: 11-04-2011 a las 17:04:39. Razón: ETIQUETAS [DELPHI], [/DELPHI]
Responder Con Cita
  #5  
Antiguo 11-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Debes declarar la función SelText como método del formulario:

Código Delphi [-]
TForm1 = class(TForm)
  ListBox1: TListBox;

private
  { Private declarations }
public
  { Public declarations }
  function SelText (ListBox1 : TListBox) : String;
end;

y anteponer el nombre de la clase del formulario al momento de implementar el método:

Código Delphi [-]
function TForm1.SelText (ListBox1 : TListBox) : String;
begin
  ...
end;

Por otra parte, cuando pongas código asegúrate de poner las etiquetas adecuadas para su formato.

// Saludos
Responder Con Cita
  #6  
Antiguo 11-04-2011
coej coej is offline
Miembro
NULL
 
Registrado: abr 2011
Ubicación: MANCHEGO-ESPAÑOL
Posts: 65
Poder: 14
coej Va por buen camino
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
  ListBox1: TListBox;


  private
    { Private declarations }
  public
    function SelText (ListBox1 : TListBox) : String;
  end;

var
  Form1: TForm1;
  a: String;
  SelItems :String;
  nItem :Integer;

implementation

{$R *.dfm}
  
   function TForm1.SelText (ListBox1 : TListBox) : String;
   var
    nItem : Integer;
    begin
      nItem := ListBox1.ItemIndex;
      if nItem >= 0 then
        Result := ListBox1.Items [nItem]
      else
        Result := '';
        end;

   begin
a:= TForm1.SelText(ListBox1);
end.

Pero sigo con el mismo error, siento ser tan pesado(y gracias por la rapidez de respuesta...
quiero asignar a la variable string a , el texto del valor seleccionado en el listbox y mostrarlo luego dentro del formulario...

Última edición por ecfisa fecha: 11-04-2011 a las 17:05:46. Razón: ETIQUETAS [DELPHI], [/DELPHI] ...
Responder Con Cita
  #7  
Antiguo 11-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por roman Ver Mensaje
Por otra parte, cuando pongas código asegúrate de poner las etiquetas adecuadas para su formato.
Gracias por apuntarlo román, por que pegan más rápido de lo que coloco las etiquetas...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 11-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por coej Ver Mensaje
y gracias por la rapidez de respuesta...
Demasiado rápido

En realidad, mi respuesta es incorrecta, el cambio que te señalé no debería ser necesario. El error te lo marca en la línea:

Código Delphi [-]
a:= SelText(ListBox1);

La llamada a SelText no reconoce ListBox1 porque ListBox1 está dentro del formulario. Tendrías que poner algo como:

Código Delphi [-]
a:= Form1.SelText(ListBox1);

// Saludos
Responder Con Cita
  #9  
Antiguo 11-04-2011
coej coej is offline
Miembro
NULL
 
Registrado: abr 2011
Ubicación: MANCHEGO-ESPAÑOL
Posts: 65
Poder: 14
coej Va por buen camino
HOla de nuevo Roman, si que lo tengo puesto
a:= TForm1.SelText(ListBox1);

Haber si me estoy explicando mal
Tengo un formulario Form1, un listbox ListBox1, y le pongo 3 items, rojo, verde azul
y quiero que cuando se marque en uno de ellos(se seleccione), guarde en la variable a el valor (rojo por ejemplo), y lo enseñe en un texto en el mismo formulario, algo asi quiero conseguir, gracias de nuevo...

Última edición por coej fecha: 11-04-2011 a las 17:34:33.
Responder Con Cita
  #10  
Antiguo 11-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Qué bárbaro! Hoy yo no debería de contestar. A ver si le atino de una buena vez.

Con tu código original, pones:

Código Delphi [-]
a:= SelText(Form1.ListBox1);

Pero, viendo los detalles de la pregunta, el punto es, desde dónde llamas a SelText. Me parece que tienes que poner SelText como método del formulario, tal como comenté al principio y la llamada a SelText tiene entonces que estar en el evento OnClick del ListBox con lo cual ya no es necesario anteponer Form1.

// Saludos
Responder Con Cita
  #11  
Antiguo 11-04-2011
coej coej is offline
Miembro
NULL
 
Registrado: abr 2011
Ubicación: MANCHEGO-ESPAÑOL
Posts: 65
Poder: 14
coej Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Gracias por apuntarlo román, por que pegan más rápido de lo que coloco las etiquetas...

Un saludo.
Por otra parte, cuando pongas código asegúrate de poner las etiquetas adecuadas para su formato.


Como se ponen las etiquetas adecuadas para su formato???? No entiendo????

Última edición por coej fecha: 11-04-2011 a las 17:48:44.
Responder Con Cita
  #12  
Antiguo 11-04-2011
beginner01 beginner01 is offline
Miembro
NULL
 
Registrado: mar 2011
Ubicación: República Dominicana
Posts: 181
Poder: 14
beginner01 Va por buen camino
Cita:
Empezado por coej Ver Mensaje

Haber si me estoy explicando mal
Tengo un formulario Form1, un listbox ListBox1, y le pongo 3 items, rojo, verde azul
y quiero que cuando se marque en uno de ellos(se seleccione), guarde en la variable a el valor (rojo por ejemplo), y lo enseñe en un texto en el mismo formulario, algo asi quiero conseguir, gracias de nuevo...
hay otras maneras de hacerlo.
prueba agregando en el evento onclick de el listbox esto.

Código Delphi [-]
 
a:=listbox1.items.strings[listbox1.itemindex];
 form1.caption:=a;

saludos.
Responder Con Cita
  #13  
Antiguo 11-04-2011
beginner01 beginner01 is offline
Miembro
NULL
 
Registrado: mar 2011
Ubicación: República Dominicana
Posts: 181
Poder: 14
beginner01 Va por buen camino
Cita:
Empezado por coej Ver Mensaje
Por otra parte, cuando pongas código asegúrate de poner las etiquetas adecuadas para su formato.


Como se ponen las etiquetas adecuadas para su formato???? No entiendo????

http://www.clubdelphi.com/foros/show...ight=etiquetas

saludos.
Responder Con Cita
  #14  
Antiguo 11-04-2011
coej coej is offline
Miembro
NULL
 
Registrado: abr 2011
Ubicación: MANCHEGO-ESPAÑOL
Posts: 65
Poder: 14
coej Va por buen camino
Si , así me funciona pero el texto me lo pone en la barra de la ventana, no en un texto dentro del formulario como quería, de todas formas muchas gracias, ya he aprendido otra cosa...
ya entiendo lo de las etiquetas, sorry...
Responder Con Cita
  #15  
Antiguo 11-04-2011
beginner01 beginner01 is offline
Miembro
NULL
 
Registrado: mar 2011
Ubicación: República Dominicana
Posts: 181
Poder: 14
beginner01 Va por buen camino
Cita:
Empezado por coej Ver Mensaje
Si , así me funciona pero el texto me lo pone en la barra de la ventana, no en un texto dentro del formulario como quería, de todas formas muchas gracias, ya he aprendido otra cosa...
al formulario le agregas por ejemplo un componente llamado tlabel
y le pones.

Código Delphi [-]
 
 label1.caption:=a
Responder Con Cita
  #16  
Antiguo 11-04-2011
coej coej is offline
Miembro
NULL
 
Registrado: abr 2011
Ubicación: MANCHEGO-ESPAÑOL
Posts: 65
Poder: 14
coej Va por buen camino
Prefesto..., muuuchas gracias.
Responder Con Cita
  #17  
Antiguo 11-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por coej Ver Mensaje
Por otra parte, cuando pongas código asegúrate de poner las etiquetas adecuadas para su formato.


Como se ponen las etiquetas adecuadas para su formato???? No entiendo????
Hola coej.

Román se refiere a las etiquetas vB. Aquí encontrarás información sobre su uso. Consiste sólamente en encerrar el texto entre las etiquetas adecuadas.
Por ejemplo para código Delphi es: [delphi] código [/delphi] dando este efecto:
Código Delphi [-]
function TForm1.SelText (ListBox1 : TListBox) : String;
var
  nItem : Integer;
begin
  nItem := ListBox1.ItemIndex;
  if nItem >= 0 then
    Result := ListBox1.Items [nItem]
  else
    Result := '';
end;
Para que notes la diferencia voy a poner la misma porción de código tal como lo presentaste en tu post:

function TForm1.SelText (ListBox1 : TListBox) : String;
var
nItem : Integer;
begin
nItem := ListBox1.ItemIndex;
if nItem >= 0 then
Result := ListBox1.Items [nItem]
else
Result := '';
end;

Como verás es mucho más difícil de leer que despues de puestas las etiquetas.

Edito: Luego de guardar estas líneas ví que que habías visto lo de las etiquetas.
No tenés por que disculparte, nadie empieza sabiendo en el foro...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 11-04-2011 a las 18:21:58.
Responder Con Cita
  #18  
Antiguo 11-04-2011
coej coej is offline
Miembro
NULL
 
Registrado: abr 2011
Ubicación: MANCHEGO-ESPAÑOL
Posts: 65
Poder: 14
coej Va por buen camino
Ok, veo que el foro funciona muy bien , rápido y comprensivos, eso anima a seguir en él...

Y sigo planteando preguntas..., empiezo por donde debería haber empezado, estoy siguiendo la biblia de delphi 7 de mario cantu, y al ir siguiendo código he visto en el componente Listbox que si se quiere utilizar con frecuencia el texto de un item del listbox se puede utilizar una funcion como esta...
Código Delphi [-]
function SelText (List :TListBox) : String;
var
  nItem := List.ItemIndex;
  if nItem >= 0 then
       Result:= List.Items[nItem]
  else
     Result := '';
end;

El problema es que como no tengo el cd de codigos de ejemplo , y estoy empezando me encuentro con bastantes problemas(tontos), de código, y no sé como llamar a esta función desde dentro del formulario, y asignar el resultado devuelto por la función como pedía antes a una etiqueta y mostrarlo... pasando como parametro el listbox, creo que en las respuestas que he recibido hay parte de respuesta, y es que cuando el codigo no estre dentro de un evento , tengo que poner el parent del componente?????
Responder Con Cita
  #19  
Antiguo 11-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Podés llamar a la función desde varios eventos, te pongo tres ejemplos:

Al hacer click en el ListBox:
Código Delphi [-]
procedure TForm1.ListBox1Click(Sender: TObject);
begin
 (* se asigna a la propiedad Caption del Label el item  seleccionado en ListBox1 *)
  Label.Caption:= SelText(ListBox1); 
end;

Al hacer click en un TButton:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 (* se asigna a la propiedad Caption del Form el item seleccionado en ListBox1 *)
  Self.Caption:= SelText(ListBox1);
end;

Al salir del ListBox1:
Código Delphi [-]
procedure TForm1.ListBox1Exit(Sender: TObject);
begin
  (* se muestra el item seleccionado en ListBox1, en un cuadro de dialogo *)
  ShowMessage(SelText(ListBox1));
end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 11-04-2011 a las 21:56:35.
Responder Con Cita
  #20  
Antiguo 11-04-2011
coej coej is offline
Miembro
NULL
 
Registrado: abr 2011
Ubicación: MANCHEGO-ESPAÑOL
Posts: 65
Poder: 14
coej Va por buen camino
Muchas gracias de nuevo a todos, así da gusto meterse en foros...

Como simulo la tercera opción , al salir del listbox, he probado a seleccionar uno , y picar fuera del listbox, o cerrar el formulario pero en ningún caso me muestra el mensaje..., doy poca guerra, jeje...
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


La franja horaria es GMT +2. Ahora son las 23:50:40.


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