AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Button-Tag wird nicht erkannt

Ein Thema von FabianClassen · begonnen am 13. Apr 2009 · letzter Beitrag vom 4. Mai 2009
Antwort Antwort
Seite 1 von 3  1 23      
FabianClassen

Registriert seit: 8. Apr 2009
Ort: Schleiden
57 Beiträge
 
Delphi 7 Enterprise
 
#1

Button-Tag wird nicht erkannt

  Alt 13. Apr 2009, 15:22
Hi
ich habe paralell zu diesem Thread http://www.delphipraxis.net/internal...t.php?t=155919
mal versucht eine Lösung für die letzten Post zu erstellen.
Wollte den Code da auch eigentlich als Beispiel posten.
Nun habe ich aber selbst ein Problem:

Das ist mein Code:

Delphi-Quellcode:
unit Test_Unit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Btn_1: TButton;
    Btn_2: TButton;
    Btn_3: TButton;
    Btn_4: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Btn_1Click(Sender: TObject);
    procedure Btn_2Click(Sender: TObject);
    procedure Btn_3Click(Sender: TObject);
    procedure Btn_4Click(Sender: TObject);
  private
    { Private-Deklarationen }
    BtnNumber: Integer;
    procedure onButtonClick(Sender: TButton);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  BtnNumber := Random(3);
end;

procedure TForm1.onButtonClick(Sender: TButton);
begin
  if Sender.Tag = BtnNumber then
    ShowMessage('Du hast den richtigen Button erwischt!');
end;

procedure TForm1.Btn_1Click(Sender: TObject);
begin
  onButtonClick(Btn_1);
end;

procedure TForm1.Btn_2Click(Sender: TObject);
begin
  onButtonClick(Btn_2);
end;

procedure TForm1.Btn_3Click(Sender: TObject);
begin
  onButtonClick(Btn_3);
end;

procedure TForm1.Btn_4Click(Sender: TObject);
begin
  onButtonClick(Btn_4);
end;

end.
Nur Irgendwie bringt die Procedur onButtonClick kein Ergebnis.

Woran liegt das?
Schonmal danke.

MFG
FC
Fabian Claßen
Eins habe ich erkannt - ich werde immer Schüler bleiben, ein Leben lang
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Button-Tag wird nicht erkannt

  Alt 13. Apr 2009, 15:25
Schonmal nen Breakpoint im onButtonClick gesetzt und geguckt, was da so für Werte in Tag und BtnNumber stehen?

Hast du die Tags überhaupt gesetzt?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Button-Tag wird nicht erkannt

  Alt 13. Apr 2009, 15:28
Der Parameter Sender ist vom Typ TComponent du musst ihn zu einem Button casten:
if (Sender as TButton).Tag = ...
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: Button-Tag wird nicht erkannt

  Alt 13. Apr 2009, 15:31
Zitat von mkinzler:
Der Parameter Sender ist vom Typ TComponent du musst ihn zu einem Button casten
Ist er nicht Und selbst wenn müsste es doch egal sein, sosnt könnten wir OOP ja gleich irgendwie sein lassen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Button-Tag wird nicht erkannt

  Alt 13. Apr 2009, 15:38
Die Eventmethode für den Buttonklick liefert den geklickten Sender als TComponent.
Und OOp heisst das eine abgeleitete Klasse an die Stelle der Superklasse treten kann, aber nicht umgekehrt!
Markus Kinzler
  Mit Zitat antworten Zitat
FabianClassen

Registriert seit: 8. Apr 2009
Ort: Schleiden
57 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Button-Tag wird nicht erkannt

  Alt 13. Apr 2009, 15:42
Ist es denn schlimm, wenn ich hier den Sender als TButton direkt initialisiere,
Ich übergebe ja auch einen Button

Ich habe übrigens die Variable mal in einer MessageBox abgefragt ... der Wert ist drin ...

Bitte um weitere Hilfe.

MFG
FC
Fabian Claßen
Eins habe ich erkannt - ich werde immer Schüler bleiben, ein Leben lang
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Button-Tag wird nicht erkannt

  Alt 13. Apr 2009, 15:45
Aber wozu hast du denn überhaupt nochmal die einzelnen OnClicks? Das ist doch genau was du mit der Unterscheidung nach Sender verhindern willst... So macht das ja gar keinen Sinn.

Schau doch im Debugger was passiert, setz doch einfach einen Haltepunkt auf das if.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Button-Tag wird nicht erkannt

  Alt 13. Apr 2009, 15:45
Warum weist du nichtbei allen buttons die selbe Methode zu und entscheidest dann per Sender?
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Button-Tag wird nicht erkannt

  Alt 13. Apr 2009, 15:48
Hallo,

poste doch mal das ganze Projekt als Zip ohne Exe (incl. der DFM).

Ich sehe nirgendwo, dass du Tag zuweist.

Ausserdem liefert Random(3) eine Zahl zwischen 0 und <3 zurück.


Heiko
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Button-Tag wird nicht erkannt

  Alt 13. Apr 2009, 15:50
Zudem überschneidet sich der Thread themenmässig mit diesem:
http://www.delphipraxis.net/internal...t.php?t=155919
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 09:21 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