![]() |
Sender soll den Titel des Formulars bestimmen
Ich wollte die Caption eines Formulars vom Sender abhängig machen
Ich weiss nicht, warum dieser Code nicht funktioniert
Delphi-Quellcode:
Wenn man den Speedbutton9 drückt, soll das Formular den Titel "Eintrag ändern"haben,
procedure TForm4.FormShow(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 end; end; bei Speedbutton11 den Tiel "Neuer Eintrag" haben. Liegst vielleicht daran, dass die Speedbuttons in einer anderen Unit sind ??? |
Re: Sender soll den Titel des Formulars bestimmen
Kommt eine Fehlermeldung oder geht er einfach kommentarlos darüber hinweg?
Hast Du Breakpunkte an die stellen gesetzt und das mal schrittweise durchlaufen? Sherlock |
Re: Sender soll den Titel des Formulars bestimmen
Zitat:
Ist da was falsch am Code ???? Ich habs auch schon bei Form4.Create reingeschrieben, ist aber dasselbe |
Re: Sender soll den Titel des Formulars bestimmen
Wie zeigst Du denn das Formular an?
Evtl. wäre es besser, im OnClick der Speedbuttons den Titel zu setzen:
Delphi-Quellcode:
procedure TForm1.SpeedButton9Click;
begin with Form4 do begin Caption := 'Eintrag ändern'; Show; end; end; |
Re: Sender soll den Titel des Formulars bestimmen
Zitat:
Delphi-Quellcode:
procedure TForm1.SpeedButton9Click(Sender: TObject);
begin Unit4.Form4.Show; end; |
Re: Sender soll den Titel des Formulars bestimmen
Und woher weiß Unit4.Form4, dass Form1.SpeedButton9 der "Sender" ist? Den müßtest du schon noch irgendwie übergeben - oder nach dem Unit4.Form4.Show noch Unit4.Form4.FormShow(SpeedButton9) aufrufen.
|
Re: Sender soll den Titel des Formulars bestimmen
Oder eine Property definieren und vor dem Show setzen.
|
Re: Sender soll den Titel des Formulars bestimmen
Hallo,
Delphi-Quellcode:
Was kommt dabei heraus, wenn Du mal ein
procedure TForm4.FormShow(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 end; end; ... // sieht das in etwa so aus? // dann sollte es funktionieren Unit4.Form4.FormShow(Unit1.Form1.speedbutton9); // Hier tippe ich mal darauf, dass Sender nicht SpeedButton9 ist, sondern eventuell Form1. procedure TForm1.SpeedButton9Click(Sender: TObject); begin Unit4.Form4.Show; end;
Delphi-Quellcode:
in Dein FormShow einbaust?
ShowMessage(Sender.ClassName);
|
Re: Sender soll den Titel des Formulars bestimmen
Delphi-Quellcode:
Hier ist Sender immer Form4, es sei denn die Prozedur FormShow wurde manuell mit einem anderen Parameter aufgerufen. Wenn aber beim Anzeigen OnShow ausgelöst wurde, dann ist Sender das Formular selbst.
procedure TForm4.FormShow(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 end; end; Wenn du mit dem Button das Formular anzeigst, dann ändere dort doch einfach vorher die Caption. |
Re: Sender soll den Titel des Formulars bestimmen
Zitat:
ShowMessage(Sender.ClassName) := TForm4
Delphi-Quellcode:
Das funktioniert nicht Fehler : zuviele Parameter
Unit4.Form4.FormShow(Unit1.Form1.speedbutton9);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 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