Programación General > Delphi
Controles Delphi
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
[#] Página Siguiente
Ir a la versión completa