Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Form farblich ändern (https://www.delphipraxis.net/167834-form-farblich-aendern.html)

Hansa 20. Apr 2012 20:37

Form farblich ändern
 
Hi,

Dass die Tform eine Eigenschaft Color hat und wie Man die setzt, dass ist mir bekannt.
Nur: wie und wo kann ich die Farbe ändern, wenn die forms Modal angezeigt werden?

Bernhard Geyer 20. Apr 2012 20:52

AW: Form farblich ändern
 
Z.B. im OnShow/onCreate-Event des Formuals

Zacherl 20. Apr 2012 21:24

AW: Form farblich ändern
 
Oder halt zwischen dem Aufruf von Create() und ShowModal() die entsprechenden Properties setzen.

Hansa 20. Apr 2012 21:25

AW: Form farblich ändern
 
2 Forms mit jeweils 1 Button. ButtonClick öffnet andere Form modal. Es wird also nicht geschlossen (also auch OnClose un brauchbar). Nur: wo jetzt ansetzen? Form2 hat jetzt den Focus und nicht mehr die aufrufende Form und das soll man sehen.

haentschman 20. Apr 2012 21:38

AW: Form farblich ändern
 
Was hälst du denn von OnActivate und OnDeactivate ? 8-) Sollte das bringen was du vorhast... Im OnActivate setzt du die aktiv Farbe und im OnDeaktivate die inaktiv Farbe. Und das für jede Form einzeln...

Hansa 20. Apr 2012 21:59

AW: Form farblich ändern
 
JJa genau, so soll das laufen, aber das geht nur bei Show. Ersetze das mal durch showmodal

Bummi 20. Apr 2012 22:40

AW: Form farblich ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hätte kurz etwas funktionierendes zusammenhackt, ob das für Dich passt, keine Ahnung

ein Template für alles ...
Delphi-Quellcode:
unit Templatep;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TTemplate = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    Destructor Destroy;override;
  end;

var
  Template: TTemplate;

implementation
uses Main;
{$R *.dfm}

{ TTemplate }

destructor TTemplate.Destroy;
begin
  Mainform.RemoveLastActive(self);
  inherited;
end;

end.
ein Mainform auch von Template abgeleitet

Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Templatep;

type
  TMainform = class(TTemplate)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    FLastActiveForm:TTemplate;
    procedure ActiveFormInform(Sender: TObject);
    { Private-Deklarationen }
  public

    { Public-Deklarationen }
    Procedure RemoveLastActive(F:TTemplate);
  end;

var
  Mainform: TMainform;

implementation

{$R *.dfm}

procedure TMainform.ActiveFormInform(Sender:TObject);
begin
   if Assigned(FLastActiveForm)   then FLastActiveForm.Color := clSilver;
   if Screen.ActiveForm is TTemplate then
      begin

       FLastActiveForm := TTemplate(Screen.ActiveForm);
       FLastActiveForm.Color := clBlue;
      end;
end;

procedure TMainform.FormCreate(Sender: TObject);
begin
   Screen.OnActiveFormChange := ActiveFormInform;
end;


procedure TMainform.RemoveLastActive(F: TTemplate);
begin
  if F=FLastActiveForm then FLastActiveForm := nil;

end;

procedure TMainform.Button1Click(Sender: TObject);
begin
   Template.ShowModal;

end;




end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 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