Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   TEdit Propiedad Text problema para cambiar (https://www.clubdelphi.com/foros/showthread.php?t=31982)

alucardo 23-05-2006 18:27:59

TEdit Propiedad Text problema para cambiar
 
:)
Hola amigos muchas gracias por su ayuda. soy nuevo en esto y tengo un problemilla

quiero cambiar la propiedad Text de un TEdit y no puedo.

tengo mi MainForm, atraves de este habro otro formulario(Form 1) de manera modal y este ultimo abre otro formulario (Form 2) igualmente de manera modal. el Tedit que les comento esta en el Form 1 y quiero cambiarle la propiedad Text desde un procedimiento (BitBtn.Clic) desde el Form 2 pero no me deja hacerlo.

alguien podria ayudarmeo.

(nota: si el TEdit estuviera en el MainForm e intentara cambiarle la propiedad Text desde el Form 1 si me deja hacerlo.)

ContraVeneno 23-05-2006 19:03:17

agrega a form1 en el uses del form2 y ya podrías cambiar:
Form1.Edit1.Text := ''

david duarte 23-05-2006 19:09:20

nos podrias mostrar un poco de tu codigo??

Saludos!!!!

Sotrono 24-05-2006 01:28:18

Hola, lo que te dijo ContraVeneno es esto:
Suponiendo que la unidad del Form1 es Unit1 y la del Form2 Unit2.
En la Unit2 declarás esto:

Código Delphi [-]
Implementation
  Uses Unit1;

Y asi ya vas a poder acceder a los componentes del Form1

Bytes!!

alucardo 24-05-2006 18:58:01

el formulario si cuenta con la referencias a las unidades donde se encuentra el componente que quiero cambiarle la propiedad (Edit.Text). es decir en la parte uses si hago referencia a las unidades.

este es la linea de codigo que no se ejecuta

uses
RepArticulosForm, dm, DB, MainForm, Movimiento;<-- Este es la unidad donde se encuentra el componente

procedure TFormMet_Busq.DBGrid1DblClick(Sender: TObject);
begin
cadena:=DBGrid1.DataSource.DataSet.FieldByName('CVE_ART').Value;
MovimientosF.EditCveArt.Text:= cadena;
end;

esto solo sucede cuando habro tres form's (1, 2 y 3) y el ultimo form que habro (3) ejecuta el procedimiento(btn.clic) para cambiar la propiedad de un componente (edit.text) del form anterior (2). cabe mencionar que los form los habro de manera modal.

pero si el procedimiento (btn.clic) estuviera en el form 2 y tratara de cambiar la propiedad del componente (Edit.text) que se encuentra en el form 1 si se ejecuta el codigo

Gracias y espero haber sido mas claro

ContraVeneno 24-05-2006 19:15:58

asstring en lugar value:
Código Delphi [-]
cadena:=DBGrid1.DataSource.DataSet.FieldByName('CVE_ART').AsString;

tambien podrías hacer la referencia directa sin tener que usar el dbgrid
Código Delphi [-]
with TuDataset do begin //TUDataset es el que tienes ligado a dbgrid1
 cadena:=FieldByName('CVE_ART').AsString;
end; //with

o directo sin usar al variable "cadena"
Código Delphi [-]
with TuDataset do begin //TUDataset es el que tienes ligado a dbgrid1
 MovimientosF.EditCveArt.Text:=FieldByName('CVE_ART').AsString;
end; //with

alucardo 25-05-2006 16:55:44

hola ContraVeneno gracias por tu ayuda

he intentado todo lo que me han dicho tu y los demas compañeros pero aun asi no logro hacer que funcione.

mi pregunta ahora es ¿el abrir muchos formularios no estara causando ese problema? por que cuando solo habro 2 formularios funciona perfectamente. los forms los habro de manera modal.

Lepe 25-05-2006 17:20:39

Acabo de crear 5 ventanas. La primera tiene un label y un edit, y llama con show modal a la segunda. La segunda llama de forma modal a la tercera, y así hasta llegar a la 5ª ventana, desde la 5ª modifico el valor del Edit y el label de la primera ventana y todo funciona correctamente.

Saludos

ContraVeneno 25-05-2006 17:29:58

Pues en teoría no deberías tener problemas. Tendrías que revisar si tienes bien asignadas las unidades en el uses donde lo vayas a utilizar

alucardo 25-05-2006 19:41:03

muchas gracias amigos por su ayuda

revisare minuciosamente mi codigo a ver que encuentro mal

si se les ocurre alguna otra cosa por favor comentenmelo

gracias y estamos en contato

alucardo 26-05-2006 19:28:46

hi lepe

con respecto a lo que hiciste lo de las cinco ventanas hice lo mismo (4 forms) y en efecto, si quiero cambiar la propiedad text del edit si puedo hacerlo, pero si el edit estuviera en cualquiera de los forms intermedios entonces es cuando ya no puedo cambiarle la propiedad text el edit.

asi abro mis forms de manera modal

procedure TForm1.Button1Click(Sender: TObject);
var
modal: TForm2;
begin
modal:= TForm2.Create(Application);
try
modal.ShowModal;
finally
modal.Free;
end;
end;

y este es el codigo del ultimo form, el que cambia la propiedad text del edit

procedure TForm4.Button1Click(Sender: TObject);
begin
Form1.Edit1.Text:= 'hola';
Form2.Edit1.Text:= 'hi';
Form3.Edit1.Text:= 'hello';
end;

espero que me puedan ayudar

thanx

Lepe 26-05-2006 23:50:42

heyy ... heyyy para el carro ;) ;)

Código Delphi [-]
modal:= TForm2.Create(Application);

Si creas una variable modal que contiene al Tform2 y despues usas Form2. pues... son 2 variables distintas, es decir, dos espacios de memoria distintos, u seasé, para delphi son 2 ventanas totalmente distintas (Form2 y modal) aunque del mismo Tipo.

Si has de compartir una ventana, usa siempre la variable global Form2, si no... ten mucho cuidado y jamás uses la variable Form2, porque te dará este tipo de fallos.

Saludos

alucardo 29-05-2006 16:12:08

hola que tal ya les debo tener artos, jajajaj

entonces me podrian indicar como debo abrir mis ventanas de manera modal, suponiendo que mi error radica en como las abro en estos momentos.


La franja horaria es GMT +2. Ahora son las 06:35:34.

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