Delphi-PRAXiS
Seite 3 von 3     123   

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/)
-   -   Delphi Sender soll den Titel des Formulars bestimmen (https://www.delphipraxis.net/128711-sender-soll-den-titel-des-formulars-bestimmen.html)

DeddyH 4. Feb 2009 15:46

Re: Sender soll den Titel des Formulars bestimmen
 
Dann hat er aber wieder das Problem, dass er später die Caption abfragt/abfragen muss. Ich bleibe dabei: Property einführen und gut is.

nahpets 4. Feb 2009 15:58

Re: Sender soll den Titel des Formulars bestimmen
 
Hallo DeddyH,
Zitat:

Zitat von DeddyH
Dann hat er aber wieder das Problem, dass er später die Caption abfragt/abfragen muss. Ich bleibe dabei: Property einführen und gut is.

Wieso Caption abfragen?
FormShow wird nicht mehr benötigt, die gesamte für dort geplante Logik, liegt in der Action und die ruft Form4.Show auf.
Und damit ist Sender genau der Schalter, den Du noch zusätzlich einführen möchtest.

DeddyH 4. Feb 2009 16:00

Re: Sender soll den Titel des Formulars bestimmen
 
Ich denke mal einfach, dass der Status (oder wie man das auch nennen möchte) nicht nur im OnShow ausgewertet wird.

Thomas F 4. Feb 2009 16:03

Re: Sender soll den Titel des Formulars bestimmen
 
Zitat:

Zitat von nahpets
Hallo,

schonmal mit 'ner ActionList gearbeitet?
Eine Action kann man mehreren Buttons, Menüeinträgen... zuordnen und dort im ActionExecute(Sender: TObject) kann man wunderbar in der gewünschten Form den Sender abfragen. Sender ist hier immer das Control, dass die Action ausgelöst hat.
Delphi-Quellcode:
// procedure TForm4.FormShow(Sender: TObject);
procedure TForm4.Action1Execute(Sender: TObject);
begin
  if Sender = Unit1.Form1.speedbutton9 
  then Form4.Caption := ' Eintrag ändern';//Unit4 

  if Sender = Unit1.Form1.Speedbutton11 
  then Form4.Caption :='Neuer Eintrag';//Unit4 

  Form4.Show;
end;

Der Code geht nicht, habs ausprobiert
Form4.show muß in Form1.speedbutton9click aufgerufen werden, sonst erscheint nix

wie wärs mit

Delphi-Quellcode:
const Konstante1: string= 'Neuer Eintrag' ;
Konstante2 :string='Eintrag ändern';

procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
Unit4.Form4.Caption:=Konstante2;
  Unit4.Form4.Show;
end;
procedure TForm1.SpeedButton11Click(Sender: TObject);
begin
Unit4.Form4.Caption:=Konstante1;
  Unit4.Form4.Show;
end;

procedure TForm4.FormShow(Sender: TObject);
begin
if Form4.Caption = Konstante1 then ......

if Form4.Caption = Konstante2 then ......
end;

DeddyH 4. Feb 2009 16:05

Re: Sender soll den Titel des Formulars bestimmen
 
Nein :!: Siehe hier: http://www.delphipraxis.net/internal...=997645#997645

Thomas F 4. Feb 2009 16:07

Re: Sender soll den Titel des Formulars bestimmen
 
Funktioniert aber :-D

taaktaak 4. Feb 2009 16:09

Re: Sender soll den Titel des Formulars bestimmen
 
Schon, ist aber wirklich eine schlechte Lösung!

mirage228 4. Feb 2009 16:20

Re: Sender soll den Titel des Formulars bestimmen
 
Zitat:

Zitat von nahpets
Hallo,
Delphi-Quellcode:
// procedure TForm4.FormShow(Sender: TObject);
procedure TForm4.Action1Execute(Sender: TObject);
begin
  if Sender = Unit1.Form1.speedbutton9 
  then Form4.Caption := ' Eintrag ändern';//Unit4 

  if Sender = Unit1.Form1.Speedbutton11 
  then Form4.Caption :='Neuer Eintrag';//Unit4 

  Form4.Show;
end;

Das kann auch nicht gehen, weil der Sender in meisten Fällen die Action selbst ist. Da musst man erst nach TAction() casten und kann dann über die ActionComponent an die gewünschte Komponente (und man müsste auch noch Fälle abfangen, wo die Action von "wo anders" aufgerufen wird...), aber ich würde nichtsdesto trotz die Lösung mit der Property vorziehen.

DeddyH 4. Feb 2009 16:24

Re: Sender soll den Titel des Formulars bestimmen
 
Wenigstens einer, der mich versteht :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 Uhr.
Seite 3 von 3     123   

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