Programación General > Delphi

 Controles Delphi

(1/2) > >>

JMAlonso:
Hola a todos.

Tengo una funcion en Visual Basic

For Each ctl In frm.Controls
        Set ctl.Font = fnt
        sCtlType = TypeName(ctl)
        If sCtlType = "Label" Then
            ctl.Caption = LoadResString(CInt(ctl.Tag) + intIdioma)
        ElseIf sCtlType = "Menu" Then
            Select Case CInt(ctl.Caption) + intIdioma
                Case 2
                       ctl.Caption = "&Salir"
                Case 3
                       ctl.Caption = "&Idioma"
                Case 10
                       ctl.Caption = "&Opciones de BDs."
                Case 11
                       ctl.Caption = "&Compactar BDs."
                Case 12
                       ctl.Caption = "Co&pia de Seguridad"
            End Select
           
        ElseIf sCtlType = "TabStrip" Then
            For Each obj In ctl.Tabs
                obj.Caption = LoadResString(CInt(obj.Tag) + intIdioma)
                obj.ToolTipText = LoadResString(CInt(obj.ToolTipText) + intIdioma)
            Next
        ElseIf sCtlType = "Toolbar" Then
            For Each obj In ctl.Buttons
                obj.ToolTipText = LoadResString(CInt(obj.Tag) + intIdioma)
            Next
        ElseIf sCtlType = "ListView" Then
            For Each obj In ctl.ColumnHeaders
                obj.Text = LoadResString(CInt(obj.Tag) + intIdioma)
            Next
        Else
            nVal = 0
            nVal = Val(ctl.Tag) + intIdioma
            If nVal > 0 Then ctl.Caption = LoadResString(nVal)
            nVal = 0
            nVal = Val(ctl.ToolTipText)
            If nVal > 0 Then ctl.ToolTipText = LoadResString(nVal)
        End If
    Next


la cual por cada tipo que exista le voy cambiando el idioma a cada control.Es
decir si en mi formulario tengo menus,botones,labels,etc con la instruccion
TypeName(ctl) me dice de que tipo es el control y en base a eso yo actuo.

Me gustaria saber si existe algo parecido en Delphi.
Por un lado si creamos un bucle
for i:=0 to componentcount - 1 do ,puedo saber cuantos componentes hay e

ir uno por uno recorriendolos.Lo que necesito saber es de que tipo son cada
uno.

Saludos.

bartolomeo:
Hola, nunca lo he hecho asi, pero mirate este codigo usa una funcion para desplazarce hacia delante y otra hacia atras.

Me alegra que participes activamente del foro  :comp: , Bienvenido   :hola:


--- Código: Text ---procedure TForm1.AdelanteExecute(Sender: TObject);begin  SelectNext(twincontrol(sender),true,true);end; procedure TForm1.AtrasExecute(Sender: TObject);begin  SelectNext(twincontrol(sender),false,true);end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);begin  if (Key = #13) then  if (GetKeyState(VK_SHIFT) and $80 = 0) then  begin    key := #0;    AdelanteExecute(sender);  end else    AtrasExecute(sender);end; 

JMAlonso:
Creo que como siempre no me he expresado bien.
Lo que necesito saber es dado un conjunto de objetos en mi formulario,menus,
botones,labels,etc.  como he dicho anteriormente con la instruccion
componentcount se cuantos objetos tiene mi formulario, pero ahora necesito
saber de que tipo son , es decir , si el component[1] es un menu o un boton, por
ejemplo.


Saludos.

JMAlonso:
Añadir que lo necesito saber en tiempo de ejecucion, evidentemente.

Ayla:
Hola.

Te paso un ejemplo de cómo lo podrías hacer, depende de lo que necesites saber, cambia el código:


--- Código: Text --- for i := 0 to ComponentCount -1 do begin       if Components[i] is TDBEdit then         TDBEdit( Components[i] ).ReadOnly := True;       if Components[i] is TDBLookupComboBox then         TDBLookupComboBox( Components[i] ).ReadOnly := True;       if Components[i] is TDBMemo then         TDBMemo ( Components[i] ).ReadOnly := True;       if Components[i] is TMaskEdit then         TMaskEdit ( Components[i] ).ReadOnly := True;       if Components[i] is TDBCheckBox then         TDBCheckBox ( Components[i] ).ReadOnly := True;       if Components[i] is TDBRadioGroup then         TDBRadioGroup ( Components[i] ).ReadOnly := True; end;  

Espero que sea esto lo que buscas  :hola:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa