Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-09-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 24
sakuragi Va por buen camino
Exclamation

bueno resumiendo
el problema que tengo es como pasarle los datos a un dato set

ya se mediante un edit, combo o memo


y bisebersa

alguna idea?


de hante mano gracias

saludos
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
  #2  
Antiguo 09-09-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 22
jmariano Va por buen camino
Para hacer lo que pides, tendrás que basarte en el valor del Edit o Combo para ir asignando valores al conjunto o ver que valores tiene el conjunto para rellenar el Edit o el Combo. Lo que no puedes hacer es una asignación tan "directa" entre un conjunto y un Edit, como pusiste más arriba.

Por ejemplo, siguiendo con el ejemplo de roman, imaginemos que queremos rellenar un Memo con los días laborales:

Código Delphi [-]
type
  TDia = (Domingo, Lunes, Martes, Miercoles, Jueves, Viernes, Sabado);
  TDias = set of TDia;

var
  DiasLaborales: TDias;
begin
  DiasLaborales := [Lunes, Martes, Miercoles, Jueves, Viernes, Sabado];
  Memo1.Clear;

  if Lunes in DiasLaborales then
    Memo1.Append('Lunes');

  if Martes in DiasLaborales then
    Memo1.Apeend('Martes');

  // Y así seguiríamos con los demás dias
end;

Verás que el Memo se irá rellenando según el contenido del conjunto "DiasLaborales" (es más, te sugiero jugar un poco con el contenido de "DiasLaborales" para que vayas viendo el resultado). Tambien, puedes hacerlo a la inversa, rellenar el conjunto según el Memo.

Código Delphi [-]
  DiasLaborales := []; // Vaciamos el conjunto

  if Memo1.Lines[0] = 'Lunes' then
    DiasLaborales := DiasLaborales + [Lunes];
  ...

Espero haberme explicado bien! (cualquier cosa vuelve a preguntar)

Saludos!

Última edición por jmariano fecha: 09-09-2005 a las 14:17:02.
Responder Con Cita
  #3  
Antiguo 09-09-2005
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
Quizá les interesen este par de funciones:

Código Delphi [-]
uses TypInfo;

function StrToDia(S: String): TDia;
begin
  Result := TDia(GetEnumValue(TypeInfo(TDia), S))
end;

function DiaToStr(Dia: TDia): String;
begin
  Result := GetEnumName(TypeInfo(TDia), Ord(Dia));
end;

Por ejemplo:

Código Delphi [-]
var
  Dia: TDia;

begin
  Dia := StrToDia(Edit1.Text);

  // ó

  Edit1.Text := DiaToStr(Dia);
end;

Se puede rellenar un combo con

Código Delphi [-]
var
  Dia: TDia;

begin
  for Dia := Domingo to Sabado do
    if Dia in DiasLaborales then
      ComboBox1.Items.Add(DiaToStr(Dia));
end;

// Saludos
Responder Con Cita
  #4  
Antiguo 09-09-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 24
sakuragi Va por buen camino
muchas gracias

me ta sirviendo


una duda mas

como le hago para que no ponga
lunes y martes en lineas separadas

lunes
martes

asi me los pone en el memo

ahi forma de ponerlos seguidos

"lunes martes"
Código Delphi [-]
 if Lunes in DiasLaborales then
    Memo1.Append('Lunes');

  if Martes in DiasLaborales then
    Memo1.Apeend('Martes');

en ves de poner una constante strgin como en el codigo
Código Delphi [-]
  DiasLaborales := []; // Vaciamos el conjunto

  if Memo1.Lines[0] = 'Lunes' then
    DiasLaborales := DiasLaborales + [Lunes];

enves de lunes poner una variable, por que si tengo un conjunto de numero
que pueden ir de 0 hasta 300

para compararlos todos, vas ser mucho mucho codigo por tantos
posibles conparaciones.

bueno todo esto lo quiero haser para

por ejemplo

tener dos edir o combobox o memos
para insertar los conjuntos por ejemplo

conjnto a " 2 3 4 5 3"
conjunto b " 3 4 5 6 7 "
eso numero insertarlos como ya dije hanteriormente

pasar ese conjunto a y b

a una variable que creamos de dato set

para haser la operaciones que se puden haser con set

ya teniendo el resultado

desplegarlo en un edit,combo o memo

espero haver sido claso

saludos

gracias



...
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
  #5  
Antiguo 09-09-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 24
sakuragi Va por buen camino
gracias roma

te me delantaste

saludos
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
  #6  
Antiguo 09-09-2005
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
Ya veo por donde vas. A las dos funciones anteriores agrégale estas dos:

Código Delphi [-]
// Convierte lista separada por comas en variable de tipo TDias
function StrToDias(S: String): TDias;
var
  Lista: TStrings;
  I: Integer;

begin
  Lista := TStringList.Create;
  Result := [];

  try
    Lista.CommaText := S;
    for I := 0 to Lista.Count - 1 do
      Include(Result, StrToDia(Lista[i]));
  finally
    Lista.Free;
  end;
end;

// Convierte variable de tipo TDIas en lista separada por comas
function DiasToStr(Dias: TDias): String;
var
  Lista: TStringList;
  Dia: TDia;

begin
  Lista := TStringList.Create;

  try
    for Dia := Domingo to Sabado do
      if Dia in Dias then
        Lista.Add(DiaToStr(Dia));

    Result := Lista.CommaText;
  finally
    Lista.Free;
  end;
end;

Pero aquí estoy suponiendo que vas a escribir en los edit tus conjuntos separando los elementos con comas y no espacios. Aunque a fin de cuentas así es como se escriben los conjuntos ¿no?

// Saludos
Responder Con Cita
  #7  
Antiguo 09-09-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 22
jmariano Va por buen camino
Muy bueno roman! Me gustaron tus funciones para convertir entre cadenas y conjuntos (gracias a ti acabo de estrenar la herramienta "Code Librarian" de las GExperts )

Saludos!

Última edición por jmariano fecha: 09-09-2005 a las 22:11:11.
Responder Con Cita
  #8  
Antiguo 09-09-2005
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 24
sakuragi Va por buen camino
muchas gracias

les debo una cena




saludos.

una pregunta roman, donde aprendiste tanto? o como?

gracias
__________________
OpenSuse OpenOffice.org icomputo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 11:10:27.


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