FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
asignacion de un valor a un dbedit
estoy trabajando con un listtree como un catalogo y segun la line que presione le asigno un valor en otro formulario a un dbedit pero tengo que condicionar la linea aqui les pongo el codigo y los errores no esta terminado pero lo estoy probando y me da errores que desconosco
With Datamodule1 do If (Tarticulo.State in [dsinsert,dsEdit]) then begin Tarticulo.Edit; tira:= Listacla.Selected.AbsoluteIndex; nodo:= Listacla.Selected.Text; Str (tira,nodo1); Label1.Caption := nodo1 ; Fbienes.Labelclasificacion.Caption:= nodo; bienes.DBEditgrupo.DataSource.DataSet.FieldByName(Fbienes.DBEditgrupo.Text).Asstring := '2' * If tira < 20 then Fbienes.DBEditsub.DataSource.DataSet.FieldByName(Fbienes.DBEditsub.Text).Asstring := '01' else if (tira > 21) and (tira<49) Then ** Fbienes.DBEditsub.DataSource.DataSet.FieldByName(Fbienes.DBEditsub.Text).Asstring := '02'; {else if tira < } end else begin MessageDlg('Debe abrir un nuevo registro antes de insertar los datos',mterror,[mbok],0); Abort; end; * da el siguiente error: Missing operator or semicolon ** da el siguiente error: Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter' |
#2
|
||||
|
||||
Pues yo veo 3 fallos
bienes.DBEditgrupo.DataSource.DataSet.FieldByName(Fbienes.DBEditgrupo.Text).Asstring := '2' 1º - El inicio de la linea no seria: [b]F[/]bienes.DBEditgrupo..... 2º - Justo al final de esa misma linea te falta el punto y coma que te pide. if (tira > 21) and (tira<49) Then ** Fbienes.DBEditsub.DataSource.DataSet.FieldByName(Fbienes.DBEditsub.Text).Asstring := '02'; {else if tira < } end <------------3º - este end sobra de momento else begin MessageDlg('Debe abrir un nuevo registro antes de insertar los datos',mterror,[mbok],0); Abort; end; |
#3
|
||||
|
||||
Pues yo veo 3 fallos
bienes.DBEditgrupo.DataSource.DataSet.FieldByName(Fbienes.DBEditgrupo.Text).Asstring := '2' 1º - El inicio de la linea no seria: Fbienes.DBEditgrupo..... 2º - Justo al final de esa misma linea te falta el punto y coma que te pide. if (tira > 21) and (tira<49) Then ** Fbienes.DBEditsub.DataSource.DataSet.FieldByName(Fbienes.DBEditsub.Text).Asstring := '02'; {else if tira < } end <------------3º - este end sobra de momento else begin MessageDlg('Debe abrir un nuevo registro antes de insertar los datos',mterror,[mbok],0); Abort; end; Perdona por el mensaje anterior, jejeje, me comí algunos de los códigos de teclado, es que no me gusta nada andar con el raton y el teclado, así que subrayo y uso las negritas escribiendo sus códigos |
#4
|
|||
|
|||
lo que me gustaria saber es sobre los errores que me arroja el mismo delphi que puse al final de la pagina del hilo pero muchas gracias por las correcciones.
|
#5
|
||||
|
||||
ahhhh, perdona entonces, como ya viste tenia prisa
* Missing operator or semicolon Traducido resulta : Falta operador o el caracter punto y coma ";". Normalmente el error es porque falta el punto y coma en la linea anterior a donde indica el fallo. Tambien por que falte un operador entre una o varias expresiones, vamos que falta: 'and' 'or' '<' '<=' '>' '>=' . Aunque confieso que en el 99% de los casos es el punto y coma que siempre me lo como con patatas. ** da el siguiente error: Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter' que traducido resulta: Tipos incompatibles: Tira de caracteres y procedimiento, puntero a tipo de datos no definido, o parametro de tipo desconocido. Éste fallo normalmente es porque ha encontrado un end que no se corresponde con ningun begin de los if, while, for ... y entonces lo interpreta como que el procedimiento ha acabado. procedure Mio ; begin if 3>2 then showmessage('si'); end; <<<< Aqui interpreta que el procedimiento Mio ha acabado showmessage('pos yo que se.....'); al leer esta linea, no sabe a que procedimiento o funcion pertenece ese código end; Tambien suele dar ese mismo error cuando a una funcion le pasas un valor que no se corresponde con el que espera: procedure Mio ( x:integer):Boolean; y la llamas de la forma : Mio ( '3' ); Como ya supones, ahora te dirá: Incompatible types: 'String' and 'Integer' Saludos |
|
|
|