Einzelnen Beitrag anzeigen

Aleshi

Registriert seit: 28. Nov 2011
6 Beiträge
 
#1

Form als Parameter übergeben

  Alt 28. Nov 2011, 09:58
Delphi-Version: 5
Hallo,

dies ist mein erster Beitrag und ich programmier auch noch nicht so lange Delphi. Hoffe ihr könnt mir helfen.

Nun zu meinem Problem.

Ich hab eine MdiParent Form und in dieser möchte ich eine Procedure schreiben in welcher Farben für Label, EditFelder, Panels usw fesgelegt werden. Ich habe auch ein componentcount drinn um rauszufinden was für Komponenten vorhanden sind. Diese Procedure soll aber con jedem MdiChild das ich erstelle aufgerufen werden und die jeweilige MdiChild Form soll als Parameter übergeben werden damit ich dann mit dem componentcount die Komponenten rausfinden kann. Wie übergebe ich aber die MdiChild Form als Parameter an die Procedure?

Dies ist die Procedure in der Main

Code:
Procedure TfrMain.DatenImport(????);
var ini: TIniFile;
    a, c, e, g, j: String;
    b, d, f, h, i, k, l: Integer;
begin
  ini := TIniFile.create('c:\Delphi\Farben2.ini');
  try
    a := ini.ReadString('TPanel','Farbe','0');
    b := StrToInt(a);
    c := ini.ReadString('TPanel','Schriftfarbe','0');
    d := StrToInt(c);
    e := ini.ReadString('TForm','Farbe','0');
    f := StrToInt(e);
    g := ini.ReadString('TLabel','Schriftfarbe','0');
    h := StrToInt(g);
    j := ini.ReadString('TEdit','Schriftfarbe','0');
    k := StrToInt(j);
    with z do
    begin
       for i := 0 to ComponentCount -1 do
         if (Components[i] is TPanel) then
           begin
             (Components[i] as TPanel).ParentBackground := false;
             (Components[i] as TPanel).color:= b;
             (Components[i] as TPanel).Font.Color := d;
           end
         else if (Components[i] is TLabel) then
           begin
             (Components[i] as TLabel).Font.Color := h;
           end
         else if (Components[i] is TEdit) then
           begin
             (Components[i] as TEdit).Color := k;
           end;
    end;
  finally
  ini.free;
end;
end;
und dies soll der Aufruf von der Child Form sein:

Code:
procedure TfrChild.FormCreate(Sender: TObject);
Var
begin
  TfrMain.DatenImport(???);
end;

end.
Momentan ist es natürlich so das er in der Main Form TLabel, TPanel usw als undefiniert makiert weil ja diese Komponenten nicht auf der Main vorhanden sind, sollen ja auch die von den Childs sein...

Vielen Dank im Vorraus
  Mit Zitat antworten Zitat