AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Komponente A soll OnClick Routine von Komponente B aufrufen
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente A soll OnClick Routine von Komponente B aufrufen

Ein Thema von FrankTorsten · begonnen am 8. Jul 2010 · letzter Beitrag vom 8. Jul 2010
Antwort Antwort
FrankTorsten

Registriert seit: 8. Jul 2010
5 Beiträge
 
Delphi 2 Desktop
 
#1

Komponente A soll OnClick Routine von Komponente B aufrufen

  Alt 8. Jul 2010, 13:51
Delphi-Version: 2005
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)
Sollte aber keine große Rolle spielen, denk ich mal. (?)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Komponente A soll OnClick Routine von Komponente B aufrufen

  Alt 8. Jul 2010, 13:58
Einfach
b.Click(); oder du rufst die Methode direkt auf
Markus Kinzler

Geändert von mkinzler ( 8. Jul 2010 um 14:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: Komponente A soll OnClick Routine von Komponente B aufrufen

  Alt 8. Jul 2010, 14:02
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
FrankTorsten

Registriert seit: 8. Jul 2010
5 Beiträge
 
Delphi 2 Desktop
 
#4

AW: Komponente A soll OnClick Routine von Komponente B aufrufen

  Alt 8. Jul 2010, 14:07
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:
procedure TForm1.UpDown1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
    Rathaus.Click();
end;
Fehlermeldung von Delphi dazu:
[Error] Unit1.pas(428): Undeclared identifier: 'Click'

Geändert von mkinzler ( 8. Jul 2010 um 14:11 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Komponente A soll OnClick Routine von Komponente B aufrufen

  Alt 8. Jul 2010, 14:16
Delphi-Quellcode:
procedure TForm1.UpDown1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
    if Assigned(Rathaus.OnClick) then
    begin
      Rathaus.OnClick(Rathaus);
    end;
end;
Greez, Chris

[Edit] Rechtschreibfehler[/Edit]
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules

Geändert von ChrisE ( 8. Jul 2010 um 14:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

AW: Komponente A soll OnClick Routine von Komponente B aufrufen

  Alt 8. Jul 2010, 14:43
Sauberer im Sinne der Trennung von Darstellung und Logik wäre allerdings eine eigene Methode, die dann in beiden Ereignissen ausgeführt wird.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
FrankTorsten

Registriert seit: 8. Jul 2010
5 Beiträge
 
Delphi 2 Desktop
 
#7

AW: Komponente A soll OnClick Routine von Komponente B aufrufen

  Alt 8. Jul 2010, 14:49
Delphi-Quellcode:
procedure TForm1.UpDown1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
    if Assigned(Rathaus.OnClick) then
    begin
      Rathaus.OnClick(Rathaus);
    end;
end;
Greez, Chris

[Edit] Rechtschreibfehler[/Edit]
Cool - DANKE.
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

Hab die Routine dann vom Klickerfeld einfach in das Editfeld gepackt, das durch das Klickerfeld geändert wird - jetzt passt es perfekt.

Hatte schon angefangen, Bilder zu machen, und seitenweise Erklärungen zu schreiben
http://www.ikaworld.de/test01.jpg


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
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Komponente A soll OnClick Routine von Komponente B aufrufen

  Alt 8. Jul 2010, 14:54
...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 ...
Das liegt daran, dass du es in dem Ereignis OnChanging gemacht hast. Hier hast du quasi Einfluss drauf, ob sich der Wert jetzt wirklich ändern darf oder nicht - sprich er ist noch nicht geändert.
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
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 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