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 20-04-2005
pablo pablo is offline
Miembro
 
Registrado: oct 2003
Ubicación: Argentina . Junin
Posts: 78
Poder: 21
pablo Va por buen camino
Primeras letras en mayúscula

hola!
1)alguno conoce un algoritmo para colocar todas las primeras letras de las palabras de una oracion en mayúscula?

2) Alguna manera de que al minimizar una ventana showmodal se minimizen todas las que estan abiertas detrás?

saludos
pablo
__________________
Pablo Tello
Responder Con Cita
  #2  
Antiguo 20-04-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Tengo una version de esta función en Delphi, pero no aquí... si te sirve te mando la que hice para VB:
Código:
Private Const CHR_LITERALS = "abcdefghijklmnñopqrstuvwxyzáéíóúàèìòùäëïöüABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚÀÈÌÒÙÄËÏÖÜ0123456789"

' Como la función de Oracle o el Capitalize de otros lenguajes
' Pone en mayúsculas la primer letra de cada palabra y en minúsculas el resto
Public Function InitCap(ByVal AText As String) As String
Dim Result As String
Dim PrevChar As String
Dim I As Integer
  Result = LCase(AText)
  PrevChar = Chr(0)
  For I = 1 To Len(AText)
    If InStr(1, CHR_LITERALS, PrevChar) = 0 Then
      Result = Left$(Result, I - 1) & UCase(Mid$(Result, I, 1)) & Mid$(Result, I + 1)
    End If
    PrevChar = Mid$(Result, I, 1)
  Next I
  
  InitCap = Result
End Function
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 20-04-2005 a las 15:04:04.
Responder Con Cita
  #3  
Antiguo 20-04-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Te dejo esta función, que no será optima pero hace el trabajo:

Código Delphi [-]
  Function jachStrProperCase(s : String) : String;

  Var
    i : Integer;
    up : Boolean;

  Begin
    result := '';
    up := True;
    for i := 1 to length(s) do
    Begin
      if up Then
        result := result + AnsiUpperCase(s[i])
      else
        result := Result + AnsiLowerCase(s[i]);
      up := s[i] = ' ';
      if up and (length(s) >= (i + 2)) and (s[i+2] = ' ') Then
        // En el caso especial de palabras de una letra, se dejan en minúscula!
        up := false;
    end;
  end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 10-08-2015
TEN TEN is offline
Registrado
NULL
 
Registrado: jul 2015
Ubicación: HONDURAS
Posts: 5
Poder: 0
TEN Va por buen camino
Sobre el tema

como hago para que un label me ponga la primer letra de cada palabra en mayuscula
Responder Con Cita
  #5  
Antiguo 10-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Usa el ejemplo de jachguate.
Responder Con Cita
  #6  
Antiguo 11-08-2015
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Poder: 17
shoulder Va por buen camino
Mayuscula.

Código Delphi [-]
function Capitalize(Str: string): string;
var Index: Cardinal;
begin
 for Index := 1 to Length(Str) do
  if (Index = 1) or (Str[Index - 1] = ' ') then
   if Str[Index] in ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y',

    'z','á','é','í','ó','ú','ñ'] then
    Dec(Str[Index], 32) else
  else
   if Str[Index] in ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y',
   'Z','Á','É','Í','Ó','Ú','Ñ'] then
    Inc(Str[Index], 32);
 Result := Str;
end;
Responder Con Cita
  #7  
Antiguo 11-08-2015
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
Hola.

Para sumar opciónes: Convertir un cadena donde cada Palabra Primera con mayuscula

Y una que contempla otros delimitadores ademas del espacio:
Código Delphi [-]
function UpperFirstChar(str: string): string;
const
  SEP = '|°!"#$%&/()={}[]¿?¡''''+*-_.,;:<> '; // (*)
var
  i : Integer;
begin
  Result := LowerCase(str);
  Result[1] := UpCase(Result[1]);
  for i := 1 to Length(Result) - 1 do
    if Pos(Result[i], sep) <> 0 then
      Result[i+1] := UpCase(Result[i+1]);
end;
(*) Caracteres que quieras considerar como separadores de palabra


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 12-08-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
TEN,

Cita:
Empezado por TEN
...como hago para que un label me ponga la primer letra de cada palabra en mayuscula...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    function CapitalLetterText(Sender: TObject) : String;
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  MsgUsr : String = 'test de primera letra en mayúsculas en cada palabra de un label, edit o memo';

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Primera letra en mayúscula en cada palabra de un string
function CapitalLetterString(Value : String) : String;
var
   SL : TStringList;
   i : Integer;

begin
   SL := TStringList.Create;
   ExtractStrings([' '],[],PChar(Value),SL);
   for i := 0 to SL.Count - 1 do
      SL.Strings[i] := Uppercase(Copy(SL.Strings[i],1,1)) + Lowercase(Copy(SL.Strings[i],2,Length(SL.Strings[i])));
   SL.Delimiter := ' ';
   Result := SL.DelimitedText;
   SL.Free;
end;

// Primera letra en mayúscula en cada palabra de un label, edit o memo
function TForm1.CapitalLetterText(Sender : TObject) : String;
var
   SL1, SL2 : TStringList;
   i,j : Integer;
   AuxStr : String;

begin

   if (Sender is TEdit) then
      AuxStr := TEdit(Sender).Text;

   if (Sender is TLabel) then
      AuxStr := TLabel(Sender).Caption;

   if (Sender is TEdit) or (Sender is TLabel) then
   begin
      SL1 := TStringList.Create;
      ExtractStrings([' '],[],PChar(AuxStr),SL1);
      for i := 0 to SL1.Count - 1 do
         SL1.Strings[i] := Uppercase(Copy(SL1.Strings[i],1,1)) + Lowercase(Copy(SL1.Strings[i],2,Length(SL1.Strings[i])));
      SL1.Delimiter := ' ';
      Result := SL1.DelimitedText;
      SL1.Free;
   end;

   if (Sender is TMemo) then
   begin
      SL1 := TStringList.Create;
      SL2 := TStringList.Create;
      for i := 0 to TMemo(Sender).Lines.Count - 1 do
      begin
         AuxStr := TMemo(Sender).Lines.Strings[i];
         ExtractStrings([' '],[],PChar(AuxStr),SL1);
         for j := 0 to SL1.Count - 1 do
            SL1.Strings[j] := Uppercase(Copy(SL1.Strings[j],1,1)) + Lowercase(Copy(SL1.Strings[j],2,Length(SL1.Strings[j])));
         SL1.Delimiter := ' ';
         SL2.Add(SL1.DelimitedText);
         SL1.Clear;
      end;
      Result := SL2.Text;
      SL1.Free;
      SL2.Free;
   end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   Label1.Caption := MsgUsr;
   Edit1.Text := MsgUsr;
   Memo1.Lines.Add('l1 ' + MsgUsr);
   Memo1.Lines.Add('l2 ' + MsgUsr);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
   Button1.SetFocus;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Label1.Caption := CapitalLetterText(Label1);
   Edit1.Text := CapitalLetterText(Edit1);
   Memo1.Lines.Text := CapitalLetterText(Memo1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   MessageDlg(CapitalLetterString(MsgUsr),mtInformation,[mbOK],0);
end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, Permite poner en mayúscula la primera letra de cada palabra de un Edit, Label, Memo o String según se muestra en la siguiente imagen:



Espero sea útil

Nelson.
Responder Con Cita
  #9  
Antiguo 12-08-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por pablo Ver Mensaje
1)alguno conoce un algoritmo para colocar todas las primeras letras de las palabras de una oracion en mayúscula?
2) Alguna manera de que al minimizar una ventana showmodal se minimizen todas las que estan abiertas detrás?
No se si alguien te lo ha comentado ya, pero aprovecha para revisar la Guía de estilo.
Por favor, temas diferentes, hilos diferentes.

Gracias.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 12-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Neftali Ver Mensaje
No se si alguien te lo ha comentado ya, pero aprovecha para revisar la Guía de estilo.
Por favor, temas diferentes, hilos diferentes.
Gracias.
10 años ya
Responder Con Cita
  #11  
Antiguo 12-08-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto


Nada, ni caso...
No se porqué me ha saltado este hilo como nuevo y he contestado sin mirar la fecha...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #12  
Antiguo 13-08-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Aquí tienes unos cuantos ejemplos para poner en mayúsculas la primera letra de cada palabra.


Saludos.
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
Primeras imágenes de Windows 8 Chris Noticias 7 08-06-2011 23:15:03
¿Como extraer de una cadena de 18 caracter, las primeras 10 letras? Nelly Varios 5 18-06-2007 20:00:09
Valor en letras, en mayuscula alcides Varios 15 09-03-2007 05:38:26
Primeras imágenes de Internet Explorer 7 marcoszorrilla Noticias 1 02-08-2005 03:54:16
Devolver Solo las Primeras N filas pzhero Oracle 1 21-08-2004 00:15:00


La franja horaria es GMT +2. Ahora son las 05:29:35.


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