Re: [lazarus] Main Form retreiving data from Child Form

2007-12-04 Thread Giuliano Colla

el stamatakos ha scritto:

Hi R,
Can you do this. I get an error Circular unit reference to unit1



To make it clearer: in Unit1 you should have:

unit Unit1;

{$mode ..blah blah}

interface

uses Classes,Sysutils,LResources,blah blah blah;

.

implementation

uses unit2;

..
end.

In Unit2 you should have:

unit Unit2;

{$mode ..blah blah}

interface

uses Classes,Sysutils,LResources,blah blah blah;

.

implementation

uses unit1;

..
end.

This way you avoid circular reference, because the uses clause is not in 
the interface section but rather in the implementation section.


Giuliano


--
Giuliano Colla

Whenever people agree with me, I always feel I must be wrong (O. Wilde)

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


[lazarus] Main Form retreiving data from Child Form

2007-12-03 Thread el stamatakos

Hi All,
 I have an MDI application in which I have two forms. Form1 (Main form) and 
form2 (Child Form). In form 2 I have some TComboBox and TEdit Components. In 
the main form I have some TEdit components. I would like Form1(MainForm) 
TEditBox to have info from Form2(Child Form) TEditBox. I thought of two ways of 
doing this and would like to know if there is a better way
 
Method 1. TIniFile. When I close form2 I write to a .ini the contents of form2. 
Then When I Activate Form1 (OnActivate) I read the info from .ini and fill in 
the info into the TEdit.
 
Method 2. I use global variables. When I close Form2 I have global variables 
that store the contents of TEdit from Form2. When I go to Activate 
form1(OnActivate) I use the global variables and assign to the TEdit in Form1.
 
Please let me know if there is a better way. I do not feel too good about 
global variables since it is a little scary and not good practise and TIniFiles 
are a little cubersome. Is there a better way in Lazarus. Thanks
 
Lefti

Re: [lazarus] Main Form retreiving data from Child Form

2007-12-03 Thread Roberto Padovani
You can use public variables (or a private variable with the
corresponding public methods for reading and writing to it, or even
better a property). For simplicity, let's say that we go with the
public variables.
Let TMainForm be the class name of the main form.
In the child form class, you could declare a public variable like:
formMainReference : TMainForm
and then in the main form you do a:

formChild := TFormChild.Create(self);
formChild.formMainReference := self;
formChild.Show;

the in the child form code you can do:

formMainReference.editBoxInMainForm.Text := 'hello';

You can also do the other way round, but beware not to free the child
before accesing the data.

By the way, I never tried it, but did you notice that by creating the
child form:
formChild := TFormChild.Create(self);
you are passing a reference of the calling form ? Any TComponent
object has a Owner property, so that formChild.Owner  is the main
form.
You only need to type cast it to a TFormMain in order to use it.

.02

R#


2007/12/3, el stamatakos [EMAIL PROTECTED]:

  Hi All,
   I have an MDI application in which I have two forms. Form1 (Main form) and
 form2 (Child Form). In form 2 I have some TComboBox and TEdit Components. In
 the main form I have some TEdit components. I would like Form1(MainForm)
 TEditBox to have info from Form2(Child Form) TEditBox. I thought of two ways
 of doing this and would like to know if there is a better way

  Method 1. TIniFile. When I close form2 I write to a .ini the contents of
 form2. Then When I Activate Form1 (OnActivate) I read the info from .ini and
 fill in the info into the TEdit.

  Method 2. I use global variables. When I close Form2 I have global
 variables that store the contents of TEdit from Form2. When I go to Activate
 form1(OnActivate) I use the global variables and assign to the TEdit in
 Form1.

  Please let me know if there is a better way. I do not feel too good about
 global variables since it is a little scary and not good practise and
 TIniFiles are a little cubersome. Is there a better way in Lazarus. Thanks

  Lefti



-- 
--
 Ing. Roberto Padovani

 via Mandrioli, 1
 40061 Minerbio (BO)
 Italy

 mail: [EMAIL PROTECTED]
 cell: 340-3428685
-

_
 To unsubscribe: mail [EMAIL PROTECTED] with
unsubscribe as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives


RE: [lazarus] Main Form retreiving data from Child Form

2007-12-03 Thread el stamatakos

Hi R#
 I am not sure I follow.
 
in my ChildForm when I declare formMainReference : TMainForm it does not know 
what TMainForm is since unit2 has no idea about unit1 (MainForm). Can you give 
me the details of what unit1(MainForm) and unit2(ChildForm) looks like since I 
cannot get it to work. Thanks. 
 
Best,
Lefti  Date: Mon, 3 Dec 2007 21:24:29 +0100 From: [EMAIL PROTECTED] To: 
lazarus@miraclec.com Subject: Re: [lazarus] Main Form retreiving data from 
Child Form  You can use public variables (or a private variable with the 
corresponding public methods for reading and writing to it, or even better a 
property). For simplicity, let's say that we go with the public variables. 
Let TMainForm be the class name of the main form. In the child form class, you 
could declare a public variable like: formMainReference : TMainForm and then 
in the main form you do a:  formChild := TFormChild.Create(self); 
formChild.formMainReference := self; formChild.Show;  the in the child form 
code you can do:  formMainReference.editBoxInMainForm.Text := 'hello';  You 
can also do the other way round, but beware not to free the child before 
accesing the data.  By the way, I never tried it, but did you notice that by 
creating the child form: formChild := TFormChild.Create(self); you are 
passing a reference of the calling form ? Any TComponent object has a Owner 
property, so that formChild.Owner is the main form. You only need to type 
cast it to a TFormMain in order to use it.  .02  R#   2007/12/3, el 
stamatakos [EMAIL PROTECTED]:   Hi All,  I have an MDI application in 
which I have two forms. Form1 (Main form) and  form2 (Child Form). In form 2 
I have some TComboBox and TEdit Components. In  the main form I have some 
TEdit components. I would like Form1(MainForm)  TEditBox to have info from 
Form2(Child Form) TEditBox. I thought of two ways  of doing this and would 
like to know if there is a better way   Method 1. TIniFile. When I close 
form2 I write to a .ini the contents of  form2. Then When I Activate Form1 
(OnActivate) I read the info from .ini and  fill in the info into the TEdit. 
  Method 2. I use global variables. When I close Form2 I have global  
variables that store the contents of TEdit from Form2. When I go to Activate  
form1(OnActivate) I use the global variables and assign to the TEdit in  
Form1.   Please let me know if there is a better way. I do not feel too 
good about  global variables since it is a little scary and not good practise 
and  TIniFiles are a little cubersome. Is there a better way in Lazarus. 
Thanks   Lefti--  -- Ing. 
Roberto Padovani  via Mandrioli, 1 40061 Minerbio (BO) Italy  mail: 
[EMAIL PROTECTED] cell: 340-3428685 -  
_ To 
unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject 
archives at http://www.lazarus.freepascal.org/mailarchives

Re: [lazarus] Main Form retreiving data from Child Form

2007-12-03 Thread Roberto Padovani
yeah, add unit1 in the uses clause of unit2 and add unit2 in the
uses clause of unit1.

R#

2007/12/3, el stamatakos [EMAIL PROTECTED]:

  Hi R#
   I am not sure I follow.

  in my ChildForm when I declare formMainReference : TMainForm it does not
 know what TMainForm is since unit2 has no idea about unit1 (MainForm). Can
 you give me the details of what unit1(MainForm) and unit2(ChildForm) looks
 like since I cannot get it to work. Thanks.

  Best,
  Lefti

  Date: Mon, 3 Dec 2007 21:24:29 +0100
  From: [EMAIL PROTECTED]
  To: lazarus@miraclec.com
  Subject: Re: [lazarus] Main Form retreiving data from Child Form

 
  You can use public variables (or a private variable with the
  corresponding public methods for reading and writing to it, or even
  better a property). For simplicity, let's say that we go with the
  public variables.
  Let TMainForm be the class name of the main form.
  In the child form class, you could declare a public variable like:
  formMainReference : TMainForm
  and then in the main form you do a:
 
  formChild := TFormChild.Create(self);
  formChild.formMainReference := self;
  formChild.Show;
 
  the in the child form code you can do:
 
  formMainReference.editBoxInMainForm.Text := 'hello';
 
  You can also do the other way round, but beware not to free the child
  before accesing the data.
 
  By the way, I never tried it, but did you notice that by creating the
  child form:
  formChild := TFormChild.Create(self);
  you are passing a reference of the calling form ? Any TComponent
  object has a Owner property, so that formChild.Owner is the main
  form.
  You only need to type cast it to a TFormMain in order to use it.
 
  .02
 
  R#
 
 
  2007/12/3, el stamatakos [EMAIL PROTECTED]:
  
   Hi All,
   I have an MDI application in which I have two forms. Form1 (Main form)
 and
   form2 (Child Form). In form 2 I have some TComboBox and TEdit
 Components. In
   the main form I have some TEdit components. I would like Form1(MainForm)
   TEditBox to have info from Form2(Child Form) TEditBox. I thought of two
 ways
   of doing this and would like to know if there is a better way
  
   Method 1. TIniFile. When I close form2 I write to a .ini the contents of
   form2. Then When I Activate Form1 (OnActivate) I read the info from .ini
 and
   fill in the info into the TEdit.
  
   Method 2. I use global variables. When I close Form2 I have global
   variables that store the contents of TEdit from Form2. When I go to
 Activate
   form1(OnActivate) I use the global variables and assign to the TEdit in
   Form1.
  
   Please let me know if there is a better way. I do not feel too good
 about
   global variables since it is a little scary and not good practise and
   TIniFiles are a little cubersome. Is there a better way in Lazarus.
 Thanks
  
   Lefti
  
 
 
  --
  --
  Ing. Roberto Padovani
 
  via Mandrioli, 1
  40061 Minerbio (BO)
  Italy
 
  mail: [EMAIL PROTECTED]
  cell: 340-3428685
  -
 
 
 _
  To unsubscribe: mail [EMAIL PROTECTED] with
  unsubscribe as the Subject
  archives at
 http://www.lazarus.freepascal.org/mailarchives




-- 
--
 Ing. Roberto Padovani

 via Mandrioli, 1
 40061 Minerbio (BO)
 Italy

 mail: [EMAIL PROTECTED]
 cell: 340-3428685
-

_
 To unsubscribe: mail [EMAIL PROTECTED] with
unsubscribe as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives


RE: [lazarus] Main Form retreiving data from Child Form

2007-12-03 Thread el stamatakos

Hi R,
Can you do this. I get an error Circular unit reference to unit1
 
Thanks
 
Lefti Date: Mon, 3 Dec 2007 21:52:08 +0100 From: [EMAIL PROTECTED] To: 
lazarus@miraclec.com Subject: Re: [lazarus] Main Form retreiving data from 
Child Form  yeah, add unit1 in the uses clause of unit2 and add unit2 in 
the uses clause of unit1.  R#  2007/12/3, el stamatakos [EMAIL 
PROTECTED]:   Hi R#  I am not sure I follow.   in my ChildForm when 
I declare formMainReference : TMainForm it does not  know what TMainForm is 
since unit2 has no idea about unit1 (MainForm). Can  you give me the details 
of what unit1(MainForm) and unit2(ChildForm) looks  like since I cannot get 
it to work. Thanks.   Best,  LeftiDate: Mon, 3 Dec 2007 21:24:29 
+0100   From: [EMAIL PROTECTED]   To: lazarus@miraclec.com   Subject: 
Re: [lazarus] Main Form retreiving data from Child Form  You can 
use public variables (or a private variable with the   corresponding public 
methods for reading and writing to it, or even   better a property). For 
simplicity, let's say that we go with the   public variables.   Let 
TMainForm be the class name of the main form.   In the child form class, you 
could declare a public variable like:   formMainReference : TMainForm   
and then in the main form you do a: formChild := 
TFormChild.Create(self);   formChild.formMainReference := self;   
formChild.Show; the in the child form code you can do: 
formMainReference.editBoxInMainForm.Text := 'hello'; You can also do 
the other way round, but beware not to free the child   before accesing the 
data. By the way, I never tried it, but did you notice that by 
creating the   child form:   formChild := TFormChild.Create(self);   
you are passing a reference of the calling form ? Any TComponent   object 
has a Owner property, so that formChild.Owner is the main   form.   You 
only need to type cast it to a TFormMain in order to use it. .02  
   R#   2007/12/3, el stamatakos [EMAIL PROTECTED]:
   Hi All,I have an MDI application in which I have two forms. Form1 
(Main form)  andform2 (Child Form). In form 2 I have some TComboBox 
and TEdit  Components. Inthe main form I have some TEdit components. 
I would like Form1(MainForm)TEditBox to have info from Form2(Child 
Form) TEditBox. I thought of two  waysof doing this and would like to 
know if there is a better way   Method 1. TIniFile. When I close 
form2 I write to a .ini the contents ofform2. Then When I Activate 
Form1 (OnActivate) I read the info from .ini  andfill in the info 
into the TEdit.   Method 2. I use global variables. When I close 
Form2 I have globalvariables that store the contents of TEdit from 
Form2. When I go to  Activateform1(OnActivate) I use the global 
variables and assign to the TEdit inForm1.   Please let me 
know if there is a better way. I do not feel too good  aboutglobal 
variables since it is a little scary and not good practise andTIniFiles 
are a little cubersome. Is there a better way in Lazarus.  Thanks  
 Lefti  --   --   
Ing. Roberto Padovani via Mandrioli, 1   40061 Minerbio (BO)   
Italy mail: [EMAIL PROTECTED]   cell: 340-3428685   
-  
_   To 
unsubscribe: mail [EMAIL PROTECTED] with   unsubscribe as the Subject   
archives at  http://www.lazarus.freepascal.org/mailarchives --  
-- Ing. Roberto Padovani  via Mandrioli, 1 
40061 Minerbio (BO) Italy  mail: [EMAIL PROTECTED] cell: 340-3428685 
-  
_ To 
unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject 
archives at http://www.lazarus.freepascal.org/mailarchives

RE: [lazarus] Main Form retreiving data from Child Form

2007-12-03 Thread el stamatakos

Hi R,
Can you do this. I get an error Circular unit reference to unit1
 
Thanks
 
Lefti Date: Mon, 3 Dec 2007 21:52:08 +0100 From: [EMAIL PROTECTED] To: 
lazarus@miraclec.com Subject: Re: [lazarus] Main Form retreiving data from 
Child Form  yeah, add unit1 in the uses clause of unit2 and add unit2 in 
the uses clause of unit1.  R#  2007/12/3, el stamatakos [EMAIL 
PROTECTED]:   Hi R#  I am not sure I follow.   in my ChildForm when 
I declare formMainReference : TMainForm it does not  know what TMainForm is 
since unit2 has no idea about unit1 (MainForm). Can  you give me the details 
of what unit1(MainForm) and unit2(ChildForm) looks  like since I cannot get 
it to work. Thanks.   Best,  LeftiDate: Mon, 3 Dec 2007 21:24:29 
+0100   From: [EMAIL PROTECTED]   To: lazarus@miraclec.com   Subject: 
Re: [lazarus] Main Form retreiving data from Child Form  You can 
use public variables (or a private variable with the   corresponding public 
methods for reading and writing to it, or even   better a property). For 
simplicity, let's say that we go with the   public variables.   Let 
TMainForm be the class name of the main form.   In the child form class, you 
could declare a public variable like:   formMainReference : TMainForm   
and then in the main form you do a: formChild := 
TFormChild.Create(self);   formChild.formMainReference := self;   
formChild.Show; the in the child form code you can do: 
formMainReference.editBoxInMainForm.Text := 'hello'; You can also do 
the other way round, but beware not to free the child   before accesing the 
data. By the way, I never tried it, but did you notice that by 
creating the   child form:   formChild := TFormChild.Create(self);   
you are passing a reference of the calling form ? Any TComponent   object 
has a Owner property, so that formChild.Owner is the main   form.   You 
only need to type cast it to a TFormMain in order to use it. .02  
   R#   2007/12/3, el stamatakos [EMAIL PROTECTED]:
   Hi All,I have an MDI application in which I have two forms. Form1 
(Main form)  andform2 (Child Form). In form 2 I have some TComboBox 
and TEdit  Components. Inthe main form I have some TEdit components. 
I would like Form1(MainForm)TEditBox to have info from Form2(Child 
Form) TEditBox. I thought of two  waysof doing this and would like to 
know if there is a better way   Method 1. TIniFile. When I close 
form2 I write to a .ini the contents ofform2. Then When I Activate 
Form1 (OnActivate) I read the info from .ini  andfill in the info 
into the TEdit.   Method 2. I use global variables. When I close 
Form2 I have globalvariables that store the contents of TEdit from 
Form2. When I go to  Activateform1(OnActivate) I use the global 
variables and assign to the TEdit inForm1.   Please let me 
know if there is a better way. I do not feel too good  aboutglobal 
variables since it is a little scary and not good practise andTIniFiles 
are a little cubersome. Is there a better way in Lazarus.  Thanks  
 Lefti  --   --   
Ing. Roberto Padovani via Mandrioli, 1   40061 Minerbio (BO)   
Italy mail: [EMAIL PROTECTED]   cell: 340-3428685   
-  
_   To 
unsubscribe: mail [EMAIL PROTECTED] with   unsubscribe as the Subject   
archives at  http://www.lazarus.freepascal.org/mailarchives --  
-- Ing. Roberto Padovani  via Mandrioli, 1 
40061 Minerbio (BO) Italy  mail: [EMAIL PROTECTED] cell: 340-3428685 
-  
_ To 
unsubscribe: mail [EMAIL PROTECTED] with unsubscribe as the Subject 
archives at http://www.lazarus.freepascal.org/mailarchives

Re: [lazarus] Main Form retreiving data from Child Form

2007-12-03 Thread John




el stamatakos wrote:

  Hi R,
Can you do this. I get an error "Circular unit reference to unit1"

Thanks

Lefti
  
 Date: Mon, 3 Dec 2007 21:52:08 +0100
 From: [EMAIL PROTECTED]
 To: lazarus@miraclec.com
 Subject: Re: [lazarus] Main Form retreiving data from Child Form
 
 yeah, add unit1 in the "uses" clause of unit2 and add unit2 in the
 "uses" clause of unit1.
 

You need to put them in the implementation section not the interface
section. (You may well need to create a uses clause under
implementation, as there isn't one there by default.) You can then
access the other units from methods in the implementation section,
without the circular reference error.


cheers,
John Sunderland





_
 To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives