Re: [lazarus] Main Form retreiving data from Child Form
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
Re: [lazarus] Main Form retreiving data from Child Form
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
RE: [lazarus] Main Form retreiving data from Child Form
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,> > 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
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,> > 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
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
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
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