![]() |
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? |
AW: Form farblich ändern
Z.B. im OnShow/onCreate-Event des Formuals
|
AW: Form farblich ändern
Oder halt zwischen dem Aufruf von Create() und ShowModal() die entsprechenden Properties setzen.
|
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.
|
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...
|
AW: Form farblich ändern
JJa genau, so soll das laufen, aber das geht nur bei Show. Ersetze das mal durch showmodal
|
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:
ein Mainform auch von Template abgeleitet
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.
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 23:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz