Linking a component to another component

Hi,

I'm trying to link a component to another one by its pointer, wich means 
that whe I create the component it creates 3 other components, and when I 
destroy it it destroys the other compoents associated

example:

I'm using this:

type
  TSystem = class(TComponent)
  private
    F1, F2, F2: TButton;
    FPanel: TPanel;
    procedure SetPanel(Panel: TPanel);

  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

  published
    property Panel: TPanel read FPanel write SetPanel; <- when I get a new 
panel, it creates 3 components on it
  end;

constructor TSystem.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
end;

destructor TSystem.Destroy;
begin
  DestroyObjects;
  inherited Destroy;
end;

procedure TSystem.CreateObjects;
begin
  if FPanel = nil then exit;
  F1 := TButton.Create(FPanel);
  F2 := TButton.Create(F1);
  F3 := TButton.Create(F2);
end;

procedure TSystem.DestroyObjects;
begin
  if FPanel = nil then exit;
  if F3 <> nil
  then F3.Free;
  if F2 <> nil
  then F2.Free;
  if F1 <> nil
  then F1.Free;
end;

procedure TSystem.SetPanel(Panel: TPanel);
begin
  DestroyObjects;
  FPanel := Panel;
  CreateObjects; <- when I set a panel it creates 3 buttons on it
end;

the problem is that, everitime I open the project, the panel get 3 new 
buttons wich means that, if I open the project 5 times, I get 15 buttons on 
the panel wich only 3 of the are controled by the TSystem.

it might be because I don't create any official link to the buttons, and 
when delphi opens, it doesn't see any reference and it creates 3 new buttons 
leaving the other 3 away

is there any way to create only 3 buttons and to control it only by my 
component?

thks for any help on this
0
Manel
10/13/2010 12:36:51 AM
public.delphi.vcl.writing 510 articles. 0 followers. Follow

19 Replies
1174 Views

Similar Articles

[PageSpeed] 26
Get it on Google Play
Get it on Apple App Store

Manel Goucha wrote:

> Hi,
> 
> I'm trying to link a component to another one by its pointer, wich
> means that whe I create the component it creates 3 other components,
> and when I destroy it it destroys the other compoents associated
> 
> example:
> 
> I'm using this:
> 
> type
>   TSystem = class(TComponent)
>   private
>     F1, F2, F2: TButton;
>     FPanel: TPanel;
>     procedure SetPanel(Panel: TPanel);
> 
>   public
>     constructor Create(AOwner: TComponent); override;
>     destructor Destroy; override;
> 
>   published
>     property Panel: TPanel read FPanel write SetPanel; <- when I get
> a new panel, it creates 3 components on it
>   end;
> 
> constructor TSystem.Create(AOwner: TComponent);
> begin
>   inherited Create(AOwner);
> end;
> 
> destructor TSystem.Destroy;
> begin
>   DestroyObjects;
>   inherited Destroy;
> end;
> 
> procedure TSystem.CreateObjects;
> begin
>   if FPanel = nil then exit;
>   F1 := TButton.Create(FPanel);
>   F2 := TButton.Create(F1);
>   F3 := TButton.Create(F2);
> end;
> 
> procedure TSystem.DestroyObjects;
> begin
>   if FPanel = nil then exit;
>   if F3 <> nil
>   then F3.Free;
>   if F2 <> nil
>   then F2.Free;
>   if F1 <> nil
>   then F1.Free;
> end;
> 
> procedure TSystem.SetPanel(Panel: TPanel);
> begin
>   DestroyObjects;
>   FPanel := Panel;
>   CreateObjects; <- when I set a panel it creates 3 buttons on it
> end;
> 
> the problem is that, everitime I open the project, the panel get 3
> new buttons wich means that, if I open the project 5 times, I get 15
> buttons on the panel wich only 3 of the are controled by the TSystem.
> 
> it might be because I don't create any official link to the buttons,
> and when delphi opens, it doesn't see any reference and it creates 3
> new buttons leaving the other 3 away
> 
> is there any way to create only 3 buttons and to control it only by
> my component?
> 
> thks for any help on this

Not tested but you can try:

{code}
if not (csLoading in componentState) then
  CreateObjects;
{code}
0
Lajos
10/13/2010 12:51:37 AM
sorry for the email

thanks, I have thought of using that, but the problem is that I'm not using
a component, I'm using a TPersistent, I only simplificated the code as an
example, but the part that creates and destroys the components is in a
TPersisten part, so that I can remove or edit the code without change the
main component, but in a TPersistent I can't use the componentstate.

is there any ohter way?

thks again
0
Manel
10/13/2010 12:57:22 AM
Manel Goucha wrote:

> sorry for the email
> 
> thanks, I have thought of using that, but the problem is that I'm not
> using a component, I'm using a TPersistent, I only simplificated the
> code as an example, but the part that creates and destroys the
> components is in a TPersisten part, so that I can remove or edit the
> code without change the main component, but in a TPersistent I can't
> use the componentstate.
> 
> is there any ohter way?
> 
> thks again

This is the usual problem when somebody posts a simplify code. I would
try to go with Panel.owner.componentState.
0
Lajos
10/13/2010 1:06:14 AM
I'm sorry,. I can't stop sending direct emails


yes, I simplified the code because it uses too much code in many units,

but if I use

if not (csLoading in Panel.owner.compoentstate) then
  CreateObjects;
or
if not (csLoading in Panel.compoentstate) then
  CreateObjects;

will it work?

thks for your help
0
Manel
10/13/2010 1:14:47 AM
Manel Goucha wrote:

> I'm sorry,. I can't stop sending direct emails
> 
> 
> yes, I simplified the code because it uses too much code in many
> units,
> 
> but if I use
> 
> if not (csLoading in Panel.owner.compoentstate) then
>   CreateObjects;
> or
> if not (csLoading in Panel.compoentstate) then
>   CreateObjects;
> 
> will it work?
> 
> thks for your help

It would be better to work with your real code. In this example in
destroy you are manually destroying the buttons. That's another big
mistake. You should never do that as you create buttons with owners.
That can generate AV errors.

You should also use: FreeNotification, RemoveFreeNotification and
Notification.
0
Lajos
10/13/2010 1:21:03 AM
Yes, your code worked, and yes, I'm having an error, everytime I destroy the 
components

this is what I'm suing:

Unit System;

type
  TSystem = class(TComponent)
  private
    FButtons: TButtons;
    FPanel: TPanel;
    procedure SetPanel(Panel: TPanel);

  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

  published
    property Panel: TPanel read FPanel write SetPanel;
  end;

constructor TSystem.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FButtons := TButtons.Create;
end;

procedure TSystem.SetPanel(Panel: TPanel);
begin
  FPanel := Panel;
  FButtons.SetPanel(Panel);
end;

destructor TSystem.Destroy;
begin
  FButtons.Destroy;
  inherited Destroy;
end;


Unit Buttons

type
  TButtons = class(TPersistent)
  private
    F1, F2, F2: TButton;
    FPanel: TPanel;

  public
    constructor Create;
    procedure SetPanel(Panel: TPanel);
    procedure CreateObjects;
    procedure DestroyObjects;
    destructor Destroy; override;

  published
    property Button1: TButton read F1;
    property Button2: TButton read F2;
    property Button3: TButton read F3;
  end;

constructor TButtons.Create;
begin
  inherited Create;
  DestroyObjects;
end;

procedure TButtons.SetPanel(Scene: TPanel);
begin
  DestroyObjects;
  FPanel := Panel;
  if not (csLoading in Panel.ComponentState) then
    CreateObjects; <- this worked
end;

procedure TButtons.DestroyObjects;
begin
  if F1 <> nil then
  begin
    F1.Free;
    F1 := nil;
  end;

  if F2 <> nil then
  begin
    F2.Free;
    F2 := nil;
  end;

  if F3 <> nil then
  begin
    F3.Free;
    F3 := nil;
  end;

is this wrong?
end;

procedure TButtons.CreateObjects;
begin
  if FPanel = nil then exit;

  F1 := TButton.Create(FPanel);
  F2 := TButton.Create(F1);
  F3 := TButton.Create(F2);
end;

destructor TButtons.Destroy;
begin
  DestroyObjects;
  inherited Destroy;
end;
0
Manel
10/13/2010 1:35:07 AM
Manel Goucha wrote:

In Delphi 2007 for some reason the TButtons generated are not part of
the DFM. I can't find a reason for that.

Notification is a protected method:

{code}
procedure TSystem.Notification(AComponent: TComponent; Operation:
TOperation);
begin
  inherited;
  if (AComponent=FPanel) and (Operation=opRemove) then
    fPanel:=nil;
end;
{code}

You create buttons with owners thus in destructors you can't destroy
them (they could be already destroyed):

{code}
destructor TSystem.Destroy;
begin
//  DestroyObjects;
  inherited Destroy;
end;
{code}


{code}
procedure TSystem.SetPanel(Panel: TPanel);
begin
  if FPanel=Panel then
    exit;

  DestroyObjects;
  if Assigned(fPanel) then
    RemoveFreeNotification(FPanel);

  FPanel := Panel;
  
  if Assigned(fPanel) then
  begin
    FreeNotification(fPanel);
    if not (csLoading in panel.owner.componentState) then
      CreateObjects
  end;
end;
{code}

If you access the buttons from TSystem you should also register them
with FreeNotification.
0
Lajos
10/13/2010 1:45:53 AM
but if I use this:

{code}
destructor TSystem.Destroy;
begin
//  DestroyObjects;
inherited Destroy;
end;
{code}

How will I destroy the buttons? I need to destroy then whe this component 
doesn't exist
0
Manel
10/13/2010 1:54:20 AM
Manel Goucha wrote:

> procedure TButtons.DestroyObjects;
> begin
>   if F1 <> nil then
>   begin
>     F1.Free;
>     F1 := nil;
>   end;
> 
>   if F2 <> nil then
>   begin
>     F2.Free;
>     F2 := nil;
>   end;
> 
>   if F3 <> nil then
>   begin
>     F3.Free;
>     F3 := nil;
>   end;
> 
> is this wrong?
> end;

You create the TButtons with owners. It can happen that the owner
destroys the Buttons before TButtons.DestroyObjects get executed. That
is the reason for the AV errors you see.

To avoid that you can create the buttons without an owner. In that case
it's clearly your duty to free them. Usually when a property is a
component you should use FreeNotification (unfortunately that requires
TComponent).
0
Lajos
10/13/2010 1:55:01 AM
I've implemented the code in the TSystem calling the CreateObjects and 
DestroyObjects in the SetPanel of the TButtons, and I worked

I only don't know how that the buttons get destroyed when I destroy the 
TSystem, if I dont destroy them in the Destroy procedure, is it the SetPanel 
having the FreeNotification?

Thanks, I really don't know too much of this type of code, but thanks again 
for your time
0
Manel
10/13/2010 1:58:51 AM
Manel Goucha wrote:

> but if I use this:
> 
> {code}
> destructor TSystem.Destroy;
> begin
> //  DestroyObjects;
> inherited Destroy;
> end;
> {code}
> 
> How will I destroy the buttons? I need to destroy then whe this
> component doesn't exist

No you don't. If the component is created with an owner you should not
try to free it. You can almost be sure that the owner will free it
before your code will be executed thus your reference will be invalid.
0
Lajos
10/13/2010 2:03:25 AM
That's what I tought,
using the Compnentstate on loading is good so that I don't get more buttons 
created, but it breaks the link with the older ones

example:

-I create a TSystem component
-I set a Panel, It creates 3 Buttons, and if I clear the Panel property it 
will destroy the buttons -> the link that exists
-I close the project
-I open The project, there are only 3 buttons on the panel, but if I clear 
the Panel from the TSystem property, it won't destroy the buttons -> broken 
link

is there any problem?

thks
0
Manel
10/13/2010 2:04:52 AM
Manel Goucha wrote:

> I've implemented the code in the TSystem calling the CreateObjects
> and DestroyObjects in the SetPanel of the TButtons, and I worked
> 
> I only don't know how that the buttons get destroyed when I destroy
> the TSystem, if I dont destroy them in the Destroy procedure, is it
> the SetPanel having the FreeNotification?
> 
> Thanks, I really don't know too much of this type of code, but thanks
> again for your time

You create f1 as TButton.create(fpanel). This means that the owner of
the button F1 will be Fpanel. In the destructor for TComponent is a
call to the DestroyComponents method that will free all the components
that fpanel owns.

Same like when you create a form. Every component on the form will be
destroyed by the destructor of TForm.
0
Lajos
10/13/2010 2:07:35 AM
Manel Goucha wrote:

> That's what I tought,
> using the Compnentstate on loading is good so that I don't get more
> buttons created, but it breaks the link with the older ones
> 
> example:
> 
> -I create a TSystem component
> -I set a Panel, It creates 3 Buttons, and if I clear the Panel
> property it will destroy the buttons -> the link that exists
> -I close the project
> -I open The project, there are only 3 buttons on the panel, but if I
> clear the Panel from the TSystem property, it won't destroy the
> buttons -> broken link
> 
> is there any problem?
> 
> thks

Its about your design. The problem is that in TSystem the fButtons is a
private field. That's where you create the link with the buttons. It's
not part of dfm file. You have the published properties in TButtons but
they are just not saved anywhere.
0
Lajos
10/13/2010 2:13:39 AM
A last question, is there any way to solve this?
do I need to create a Filer? or to overrite the DefineProperties?

if not, I will leave it and restructure a new way of doing this

thks for all
0
Manel
10/13/2010 2:17:09 AM
Manel Goucha wrote:

> A last question, is there any way to solve this?
> do I need to create a Filer? or to overrite the DefineProperties?
> 
> if not, I will leave it and restructure a new way of doing this
> 
> thks for all

I would inherit TSystem directly from TPanel. But again without knowing
what you would like to accomplish and it’s a bit hard to give an advice.
0
Lajos
10/13/2010 2:32:21 AM
"Manel Goucha" <jaclino@hotmail.com> wrote in message 
news:296548@forums.embarcadero.com...

> I'm using this:

Try something like this instead:

{code:delphi}
type
  TSystem = class(TComponent)
  private
    F1, F2, F2: TButton;
    FPanel: TPanel;
    procedure CreateObjects;
    procedure SetPanel(Value: TPanel);
  protected
    procedure Loaded; override;
    procedure Notification(AComponent: TComponent; Operation: TOperation); 
override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Panel: TPanel read FPanel write SetPanel;
  end;

constructor TSystem.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
end;

destructor TSystem.Destroy;
begin
  SetPanel(nil);
  inherited Destroy;
end;

procedure TSystem.CreateObjects;
begin
  F1 := TButton.Create(Self);
  F1.Parent := FPanel;
  // set other properties of F1 as needed ...
  F2 := TButton.Create(Self);
  F2.Parent := FPanel;
  // set other properties of F2 as needed ...
  F3 := TButton.Create(Self);
  F3.Parent := FPanel;
  // set other properties of F3 as needed ...
end;

procedure TSystem.Loaded;
begin
  inherited Loaded;
  if (FPanel <> nil) and not (csDesigning in FPanel.ComponentState) then
    CreateObjects;
end;

procedure TSystem.Notification(AComponent: TComponent; Operation: 
TOperation);
begin
  inherited Notification(AComponent, Operation);
  if Operation = opRemove then
  begin
    if AComponent = F1 then
      F1 := nil
    else if AComponent = F2 then
      F2 := nil
    else if AComponent = F3 then
      F3 := nil
    else if AComponent = FPanel then
      FPanel := nil;
  end;
end;

procedure TSystem.SetPanel(Value: TPanel);
begin
  if Value <> FPanel then
  begin
    FreeAndNil(F1);
    FreeAndNil(F2);
    FreeAndNil(F3);
    if FPanel <> nil then
      FPanel.RemoveFreeNotification(Self);
    FPanel := Panel;

    if FPanel <> nil then
    begin
      FPanel.FreeNotification(Self);
      if (FPanel.ComponentState * [csDesigning, csLoading]) = [] then
        CreateObjects;
    end;
  end;
end;
{code}

-- 
Remy Lebeau (TeamB)
0
Remy
10/13/2010 6:58:56 PM
Thanks, and it works, but what if I wanted the to be created at design time?

Like this:

If I set The Panel on the Panel property it creates 3 buttons, and when I 
clear the property it destroys the 3 buttons
is it possible without any problems?

thks again
0
Manel
10/14/2010 10:45:02 PM
"Manel Goucha" <jaclino@hotmail.com> wrote in message
news:297233@forums.embarcadero.com...

> but what if I wanted the to be created at design time?

Take out the checks for the csDesigning flag:

{code:delphi}
procedure TSystem.Loaded;
begin
  ...
  // if (FPanel <> nil) and not (csDesigning in FPanel.ComponentState) then
  if FPanel <> nil then
  ...
end;

procedure TSystem.SetPanel(Value: TPanel);
begin
  ...
  // if (FPanel.ComponentState * [csDesigning, csLoading]) = [] then
  if not (csLoading in FPanel.ComponentState) then
  // Or:
  // if not (csLoading in Self.ComponentState) then
  ...
end;
{code}

-- 
Remy Lebeau (TeamB)
0
Remy
10/15/2010 12:13:52 AM
Reply:

Similar Artilces:

Delphi XE6 How to link FastReport components to FireDAC components?
Hi to all. I'm wondering on how to link FastReport componets to FireDAC components. A Delphi XE article "Creating Reports with FastReport (FireDAC)" tells about some misterious component called "TfrxComponents" that is used to do de job but I can't find it nowhere. FastReport demos uses ADOTables and ADOQuerys but no FDQueys neither FDTables. Is there any source code example for doing this? I'll appreciate any link than can help me to best understand my trouble. Regards, Hernando. First of all, FastReports has a propensity to uninstall itself. S...

Delphi XE6 How to link FastReport components to FireDAC components?
Hi to all. I'm wondering on how to link FastReport componets to FireDAC components. A Delphi XE article "Creating Reports with FastReport (FireDAC)" tells about some misterious component called "TfrxComponents" that is used to do de job but I can't find it nowhere. FastReport demos uses ADOTables and ADOQuerys but no FDQueys neither FDTables. Is there any source code example for doing this? I'll appreciate any link than can help me to best understand my trouble. Regards, Hernando. Please, contact FastReports company regarding FireDAC / FastRepor...

Components in Components
I'm finishing up on a component that I've been creating at run-time but thought I'd go ahead and compile it and add it to my palette. The component contains a number of TPersistent components and a couple of TComponents. It's working well, and it compiles OK, but in the Object Inspector each of the TComponent properties has a drop-down control next to it, as if I was supposed to pick a component from a list. What is going on with this? Do I need to define the owner differently, or specify a parent-lik e object? I'd rather it just list the name of the class, like how i...

.net component to Delphi component ?
Hello, Is there a way to use .net component inside Delphi ? Thanks On Tue, 18 Nov 2008 13:16:37 -0800, isaac sam wrote: > Is there a way to use .net component inside Delphi ? http://www.managed-vcl.com/ has some libraries for this. -- Marc Rohloff [TeamB] marc -at- marc rohloff -dot- com Marc Rohloff wrote: > On Tue, 18 Nov 2008 13:16:37 -0800, isaac sam wrote: > >> Is there a way to use .net component inside Delphi ? > > http://www.managed-vcl.com/ has some libraries for this. > I was hoping for a free tool but thanks On Tue, 18 Nov 2008...

Component that references another component
Hi, I have implemented two components, TCOMPort and TCOMIndicator. TCOMPort has a property named CTSIndicator written as follows. __property TCOMIndicator *CTSIndicator = {read = FCTSIndicator, write = FCTSIndicator, default = NULL}; For a TCOMPort component, the CTSIndicator property appears in the object inspector as expected and I am able to select any TCOMPortIndicator objects as expected. If, after selecting TCOMIndicator component, I then delete the TCOMIndicator component from the form I get an access violation, which is not totlly unexpected since the property that was assi...

Component to host VCL component
In the old days, when FireMonkey was still VGScene, we had a nice component that would host any good old VCL component. Very practical. How is this achieved with FireMonkey? I'm not interested in any cross-platform stuff, just want to use it on Windows. ...

ANN: Bricksoft IM VCL Component v8.2 released. All components support Delphi 2009!
All components support Delphi 2009! Please download the trial version(http://www.imcomponents.com/bsimtrial.zip) if you like. -- Bricksoft Support Bricksoft IM(MSN+YAHOO+AIM+ICQ+Jabber/GTalk) SDK For NET/VCL/COM/SOAP - http://www.imcomponents.com/ "Jianmin Wu" <nospam@nospam.com> wrote in message news:72535@forums.codegear.com... > All components support Delphi 2009! with D2009 support, do you still require TNT controls for unicode ? Also do you have any plans to support emoticons ? Regards, Danny Component and demo for D2009 don't need TNT cont...

Component calling another component in cluster
I have a Jag PB component which I want to call another PB Component on the same Cluster using the built in load balancing (currently using round-robin). When I run it, it seems to only run on the same server as the first component, and not load balanced. Here is sample code from the first Jag PB component: JaguarOrb l_JaguarOrb CORBAObject l_CorbaObject sessionmanager_manager l_manager sessionmanager_session l_session sessionmanager_factory l_factory nstatus_n_status mystatus long ll_return l_JaguarOrb = CREATE JaguarOrb ll_return = l_JaguarOrb.init("ORBSocketReuse...

Style of a component within another component
Hi I am creating a virtual keyboard for Firemonkey in my touch applications and i created a control inherited from TStyledControl call TKeyButton and it has its own style saved in a .res file. I used the same technique Ray Konopka used in his video "Creating Custom FM Controls". But now i want to create the main keyboard control with the ability to edit the KeyButtons style later on design-time. So, here is what i wanna know. I want the style of the TKeyButton to appear on the Style editing window when i select "Edit Custom Style" on the keyboard it self not the b...

Setting a reference to a component in another component
From a powerBuilder client I instanciate two components, A and B (powerbuilder components). Then I call a function on A that gives a reference to B. A now have a reference to B. The next thing I do is to call a function on A that calls a function on B returning a string. (This function call fails) Below is the implementation of c_pcr that both A and B is inhereted from: Description of c_pcr: Declare: private: string is_name c_pcr ic_pcr errorLogging iel_server Events: activate () is_name = this.className() this.GetContextS...

Debugging one component calling another component
I am trying to debug following code. Client application calls function of_A() of PB 7 component A that calls functions of_B() of the PB 7 component B. int A.of_A () { 1 int rcode 2 rcode = B.of_B() 3 RETURN rcode } int B.of_B() { 1 ErrorLogging lel 2 GetContextService( "ErrorLogging", lel ) 3 lel.log("In the function") } On line 2 of A.of_A() the debugger hangs and never returns. If I put a break in the B.of_F(), the same story. If I run the code w/o debugger, I get "In the function" in my srv.log. I run PB7 bu...

Can service component call another component?
I have a service component written in Powerbuilder, it calls the method of another ActiveX component written in Visual Basic. When I run this service component via a client applicaiton, it works fine. But after I put it into service list of Jaguar server property tab, I got an error message in srv.log: " SRVLIB Message: 16253/10/0: srv_thread_props(): property SRV_T_USER not valid for service thread " And CreateInstance () function used to create an instance of ActiveX component failed. Is there any restriction for calling another component from within a service com...

How to notify the designer that my component has modified another component?
Hi I've written a small component that links to two ImageLists, the component lets me select a 32x32 image into one of the image lists and automatically selects the corresponding 16x16 image into the other image list. All works great if the imagelists are on the same form but if they are elswhere then the designer doesn't detect that they have changed and the unit where they reside doesn't get saved. So my question is, how do I tell the designer that a different unit needs to be saved? Best regards Chris F Just call the Designer.Modified after your changes ...

Problems deriving a component from another derived component.
I have been learning how to write components in Delphi Rad Studio 2007 and during one of the examples I encountered a fustrating problem. In this example I made a new component that was derived from TComponent, Added some code to modify the component slightly. I installed it and it seemed to function correctly. The next step was to derive a component from my derived component, then add some code to override an existing procedure. This all seemed to function correctly, meaning that when I did file -->> New Package and then added a new VCL Component, I could select my initial component f...

Web resources about - Linking a component to another component - public.delphi.vcl.writing

Component - Wikipedia, the free encyclopedia
Text is available under the Creative Commons Attribution-ShareAlike License ;additional terms may apply. By using this site, you agree to the ...

AirAsia disaster: Indonesia cites faulty component, crew response in crash
Pilots appear to have reset the computer system's circuit breaker, leading to a series of failures that caused them to lose control of the plane ...

It’s a new year, and time for the claimed iPhone 7 component photos to begin
Taiwanese site Apple Club has posted what it claims are leaked photos of iPhone 7 components. The photos appear to show the backlight of a new ...

Japan follows US lead in banning certain Takata components
Filed under: Government/Legal , Safety , Japan Like the US, Japan will ban certain Takata's airbag inflators from vehicles in development, and ...

Lumentum, Fabrinet: Component Makers at Start of 5-Year Boom, Says Needham
Needham & Co .’s Alex Henderson today advises fiber optics enthusiasts to look to component makers , such as Lumentum ( LITE ), in 2016, more ...

Samsung reportedly lost key iPhone 7 component business
... for Samsung , which is ironic considering the two companies are fierce rivals in the mobile business. The Korean giant produces various components ...

Solar Power Is Booming and Its Biggest Component Is Dirt Cheap
Prices for polysilicon, the main ingredient in solar cells, have dropped to a record low amid a supply glut that won’t end soon.

Crew, faulty component caused AirAsia crash
Indonesian investigators said crew action and a faulty component caused the AirAsia jet crash in the Java Sea last year, killing 162 passengers. ...

Immigration Law Enforcement: A Vital Component Of National Security And Counterterrorism
While the administration claims that these refugees are being vetted, there is no way to actually screen these people

John Ridley Extends ABC Studios Deal For Three More Years; Film Component Added
John Ridley and his production arm, International Famous Players Radio Picture Corporation, have extended their first-look deal with ABC Studios ...

Resources last updated: 1/8/2016 9:34:54 PM