Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Hintergrundfarbe einer Unit über einen andere Unit ändern (https://www.delphipraxis.net/193647-hintergrundfarbe-einer-unit-ueber-einen-andere-unit-aendern.html)

Luca Haas 25. Aug 2017 11:56

Hintergrundfarbe einer Unit über einen andere Unit ändern
 
Hallo Leute,
ich hoffe ich habe das richtige Forum erwischt.

Und zwar ist meine Frage, wie ich die Hintergrundfarbe, der Units, meines Projektes, alle gleichzeitig über einen Button ändern kann.
Wie ich eine Unit, auf der der Button ist ändere weiß ich, allerdings weiß ich nicht wie mit einem Button alle Units ändern kann.

Hoffe mir kann jemand helfen

Grüße Luca

DeddyH 25. Aug 2017 12:02

AW: Hintergrundfarbe einer Unit über einen andere Unit ändern
 
Hallo und Willkommen in der DP :dp:,

über alle Forms (nicht Units) Deines Projekts kannst Du mit TScreen.Forms bzw. TScreen.FormCount iterieren.
Delphi-Quellcode:
for i := 0 to Screen.FormCount - 1 do
  begin
    TheForm := Screen.Forms[i];
    MachWasMitTheForm;
  end;

Codehunter 25. Aug 2017 14:52

AW: Hintergrundfarbe einer Unit über einen andere Unit ändern
 
Zitat:

Zitat von DeddyH (Beitrag 1379463)
über alle Forms (nicht Units) Deines Projekts kannst Du mit TScreen.Forms bzw. TScreen.FormCount iterieren.

Na komm, ein var hättest du ruhig mitgeben können. Das machts für den Einstieg einfacher ^^
Delphi-Quellcode:
var
  i: Integer;
  TheForm: TForm;
begin
  for i := 0 to Screen.FormCount - 1 do
  begin
    TheForm := Screen.Forms[i];
    TheForm.MachWas;
  end;
end;

himitsu 25. Aug 2017 19:00

AW: Hintergrundfarbe einer Unit über einen andere Unit ändern
 
Farbe einer Unit? :zwinker:

Oder meinst du nicht etwa Form.

Redeemer 26. Aug 2017 22:47

AW: Hintergrundfarbe einer Unit über einen andere Unit ändern
 
Oder mit foreach-Schleife:
Delphi-Quellcode:
var
  Form: TForm;
begin
  for Form in Screen.Forms do
  Form.Color := clGreen;
end;

Luca Haas 29. Aug 2017 13:14

AW: Hintergrundfarbe einer Unit über einen andere Unit ändern
 
Danke der Hilfe, aber ich habe es mithilfe der Trial and Error Methode irgendwann selbst herausgefunden, da ich total vergessen hatte, dass ich diesen Thread gestartet habe.

Ich meinte natürlich, dass ich meine Form verfärben wollte, was ich mit
Code:
procedure TForm1.Button5Click(Sender: TObject);
begin
  Unit1.Form1.Color := clFarbe;
end;
geschafft habe.

Nochmals danke für die Hilfe, ich hoffe beim nächsten mal vergesse ich nicht das ich hier ne Frage reingestellt habe und kann euch helfen, mir zu helfen. :stupid:

DeddyH 29. Aug 2017 13:21

AW: Hintergrundfarbe einer Unit über einen andere Unit ändern
 
Du bist ja wahrscheinlich in Unit1 (ein kleiner Rat: die Standardbenennungen immer sofort in etwas Sinnvolles ändern), da genügt dann auch ein einfaches
Delphi-Quellcode:
Color := clRed;
oder auch (für das bessere Verständnis)
Delphi-Quellcode:
self.Color := clRed;
Es ist im Allgemeinen keine gute Idee, aus einer Methode heraus auf eine benannte Instanzvariable der eigenen Klasse zuzugreifen.

Luca Haas 29. Aug 2017 13:33

AW: Hintergrundfarbe einer Unit über einen andere Unit ändern
 
Ja habe ich alles auch so gemacht, dachte nur ich schreibe es Allgemeiner hier rein, dass es alle verstehen.

himitsu 29. Aug 2017 16:24

AW: Hintergrundfarbe einer Unit über einen andere Unit ändern
 
Zitat:

Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
begin
  Unit1.Form1.Color := clFarbe;
end;

Ist dennoch höchst problematisch.

Wenn es von Form1 mehrere Instanzen gibt, oder wenn die Form nicht automatisch erzeugt wurde (die Instanz nicht in der globalen Variable gespeichter wurde),
dann kann Unit1.Form1 sonstwas sein, nur nicht die Form selber (Self). Im Schlimmsten Fall ein NIL oder gar ein ungültiger Zeiger.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz