![]() |
Delphi-Version: 2005
Komponente A soll OnClick Routine von Komponente B aufrufen
Mahlzeit allerseits :)
(Ich hoffe mal, ich bin in der richtigen Rubrik) Folgende Frage: Nach Änderung eines UpDown's (der schreibt einen bestimmten Wert in ein Edit-Feld) soll dann die OnClick-Routine eines TLabels aufgerufen werden. In der OnClick-Routine des Labels wird dann eine Tabelle - abhängig vom TLabel-Namen - mit Werten gefüllt, und bestimmte Spalten auch berechnet - und die brauchen den Zahlenwert aus dem Edit-Feld. Im Moment mache ich das so, das erst das Editfeld mit dem Zahlenwert eingestellt wird - und dann muß das entsprechende TLabel (erneut)angeklickt werden, um die Änderungen zu bekommen. Wäre natürlich schöner, wenn direkt bei einer Wertänderung im Edit-Feld (durch die UpDown-Komponente) sich dann auch gleich die Tabelle von alleine aktualisiert. Delphi-Version ist übrigens Delphi 2002 (7) :lol: Sollte aber keine große Rolle spielen, denk ich mal. (?) |
AW: Komponente A soll OnClick Routine von Komponente B aufrufen
Einfach
Delphi-Quellcode:
oder du rufst die Methode direkt auf
b.Click();
|
AW: Komponente A soll OnClick Routine von Komponente B aufrufen
Wieso willst du aber den OnClick anstoßen?! Aktualisiere halt das Label beim OnChange des UpDowns oder des Edits (habe nicht genau verstanden, was nun wirklich aktualisiert wird)
Zudem würde ich den Code für die Aktualisierung aus dem OnClick bzw. OnChange nehmen, eine private-Methode daraus machen und diese dann passend rufen. |
AW: Komponente A soll OnClick Routine von Komponente B aufrufen
Klappt leider nicht
Erstmal vorweg: Ich hab rund 20 TLabels, denen ich dann 20 verschiedene Namen gegeben habe - das spezielle, an dem ich die ganze Sache gerade *versuche*, hört auf den schönen Namen Rathaus. Entsprechend deiner Angabe (zumindestens so, wie ich sie verstanden habe) dann die Testroutine:
Delphi-Quellcode:
Fehlermeldung von Delphi dazu:
procedure TForm1.UpDown1Changing(Sender: TObject;
var AllowChange: Boolean); begin Rathaus.Click(); end; [Error] Unit1.pas(428): Undeclared identifier: 'Click' |
AW: Komponente A soll OnClick Routine von Komponente B aufrufen
Delphi-Quellcode:
Greez, Chris
procedure TForm1.UpDown1Changing(Sender: TObject;
var AllowChange: Boolean); begin if Assigned(Rathaus.OnClick) then begin Rathaus.OnClick(Rathaus); end; end; [Edit] Rechtschreibfehler[/Edit] |
AW: Komponente A soll OnClick Routine von Komponente B aufrufen
Sauberer im Sinne der Trennung von Darstellung und Logik wäre allerdings eine eigene Methode, die dann in beiden Ereignissen ausgeführt wird.
|
AW: Komponente A soll OnClick Routine von Komponente B aufrufen
Zitat:
hatte erst immer nur eins verzögert reagiert - bei mir im Klickerfeld auf 21 umgestellt - in der Tabelle nix passiert - dann auf 22 umgestellt - in der Tabelle tauchte dann erst die 21 auf :lol: Hab die Routine dann vom Klickerfeld einfach in das Editfeld gepackt, das durch das Klickerfeld geändert wird - jetzt passt es perfekt. :thumb: Hatte schon angefangen, Bilder zu machen, und seitenweise Erklärungen zu schreiben :-D ![]() PS: Ich hab Delphi erst seit dem letzten Wochenende in Benutzung - und das letzte mal vor 20 Jahren unter QW-basic (oder so ähnlich)was *programmiert*. Diesem *Wissenstand* muß dann leider ein gewisser Tribut gezollt werden :stupid: |
AW: Komponente A soll OnClick Routine von Komponente B aufrufen
Zitat:
Lößt du jetzt die Methode zum anpassen der Labels dafür aus, dann werden diese natürlich noch den alten Wert erhalten. Viel Erfolg weiterhin. Gruß, Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 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