AGB  ·  Datenschutz  ·  Impressum  







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

TButton1-X gleiche Funktionalität

Ein Thema von Andi1985 · begonnen am 11. Mai 2007 · letzter Beitrag vom 11. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Andi1985
Andi1985

Registriert seit: 11. Mai 2007
Ort: NRW
116 Beiträge
 
Delphi 2006 Enterprise
 
#1

TButton1-X gleiche Funktionalität

  Alt 11. Mai 2007, 09:29
Hallo,

ich bin noch ein ziemlicher Anfänger in Delphi, deswegen frag ich bei meinem folgenden Problem hier nach:

Ich habe eine Procedure für einen Button geschrieben(siehe unten), dies ist noch nichts Tolles, aber
nun besitzt mein Program geschlage 50 Buttons davon welche die gleiche Funktionaliät dieses Buttons
übernehmen sollen.

Wie man sehen kann zählt der Button beim Klick einen Zähler hoch, nun soll dies
aber bei allen 50 Buttons geschehen, aber nur wenn man auf den jeweiligen Button klickt.

Vielen Dank für eventuelle Hilfe,
mfg Mogtar

Delphi-Quellcode:
procedure TForm8.Button1Click(Sender: TObject);
begin
  if (Button1.Caption <> '') then
    begin
    if (StrToInt(Button1.Caption) < 9) OR (Button1.Caption = '') then
      begin
        Button1.Caption := IntToStr(StrToInt(Button1.Caption) + 1);
      end
    else
      begin
        Button1.Caption := '';
      end;
    end
  else
    begin
      Button1.Caption := '0';
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#2

Re: TButton1-X gleiche Funktionalität

  Alt 11. Mai 2007, 09:46
herzlich willkommen....

Delphi-Quellcode:
procedure TForm8.ButtonClick(Sender: TObject);
var
  aval:integer;
begin
  if sender is tbutton then
  begin
    aval:=0;

    if (Sender as Tbutton).Caption <> 'then
    begin
      aval:=StrToInt((Sender as Tbutton).Caption);
      if aval < 9 then
        inc(aval);
    end

    (Sender as Tbutton).Caption:=inttostr(aval);
  end;
end;
und diese prozedur weist du im onclick-ereignis jedem der buttons zu.
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#3

Re: TButton1-X gleiche Funktionalität

  Alt 11. Mai 2007, 09:47
Über den Parameter Sender, kannst du auf den jeweiligen Button zugreifen, das heißt du schreibst

Delphi-Quellcode:
procedure TForm8.Button1Click(Sender: TObject);
begin
  if (Sender is TButton) then
    begin
    if (TButton(Sender).Caption <> '') then
      begin
      if (StrToInt(TButton(Sender).Caption) < 9) OR (TButton(Sender).Caption = '') then
        begin
          TButton(Sender).Caption := IntToStr(StrToInt(TButton(Sender).Caption) + 1);
        end
      else
        begin
          TButton(Sender).Caption := '';
        end;
      end
    else
      begin
        TButton(Sender).Caption := '0';
    end;
  end;
end;
Das musst du jetzt nur noch mit jedem Button verlinken

edit: Zwei Dumme ein Gedanke aber du warst schneller
Richard Mahr
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: TButton1-X gleiche Funktionalität

  Alt 11. Mai 2007, 09:50
oder du schreibst ne eigene Procedure

Delphi-Quellcode:
procedure TForm8.ueberall(Sender: TObject);
begin
  if (Sender is TButton) then
    begin
    if (TButton(Sender).Caption <> '') then
      begin
      if (StrToInt(TButton(Sender).Caption) < 9) OR (TButton(Sender).Caption = '') then
        begin
          TButton(Sender).Caption := IntToStr(StrToInt(TButton(Sender).Caption) + 1);
        end
      else
        begin
          TButton(Sender).Caption := '';
        end;
      end
    else
      begin
        TButton(Sender).Caption := '0';
    end;
  end;
end;
und fügst sie in jedem button ein

Delphi-Quellcode:

procedure TForm8.Button1......50(Sender: TObject);
begin
 ueberall
end;
Gruss sascha
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: TButton1-X gleiche Funktionalität

  Alt 11. Mai 2007, 09:52
sorry

so mit deiner Procedur

Delphi-Quellcode:
procedure TForm8.ueberall(Sender: TObject);
begin
 if (Button1.Caption <> '') then
    begin
    if (StrToInt(Button1.Caption) < 9) OR (Button1.Caption = '') then
      begin
        Button1.Caption := IntToStr(StrToInt(Button1.Caption) + 1);
      end
    else
      begin
        Button1.Caption := '';
      end;
    end
  else
    begin
      Button1.Caption := '0';
  end;
end;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: TButton1-X gleiche Funktionalität

  Alt 11. Mai 2007, 09:55
Dieser Event wird einfach allen Buttons zugewiesen.
Ich habe die Funktion etwas vereinfacht. Die Logik ist aber nicht ganz klar. Wie das "< 9" funktionieren soll ist unverstaendlich.
Delphi-Quellcode:
procedure TForm8.Button1Click(Sender: TObject);
begin
  with Sender as TButton do
    if Caption <> 'then
    begin
      if StrToInt(Caption) < 9 then
        Caption := IntToStr(StrToInt(Caption) + 1)
      else
        Caption := '';
    end
    else
      Caption := '0';
end;
Besser ist es den Wert nicht in der Caption selbst aufzuheben, sondern die Tag-Property der Komponente zu verwenden. Die Caption sollte immer nur zur Darstellung verwendet werden.
Delphi-Quellcode:
procedure TForm8.Button1Click(Sender: TObject);
begin
  with Sender as TButton do
  begin
    Tag := Tag + 1;
    Caption := IntToStr(Tag);
  end;
end;
Jetzt mal ohne das "< 9" zu beruecksichtigen.
  Mit Zitat antworten Zitat
Benutzerbild von Andi1985
Andi1985

Registriert seit: 11. Mai 2007
Ort: NRW
116 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: TButton1-X gleiche Funktionalität

  Alt 11. Mai 2007, 10:01
danke für die vielen Antworten, aber verstehe ich das jetzt richtig, das ich meine Procedure zwar nicht 50 mal schreiben
muss aber trotzdem 50 mal die OnClick events der Buttons generiere und da nun meine Funktion aufrufe?
Ich dachte eigendlich das würde irgendwie sinvoller gehn...
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: TButton1-X gleiche Funktionalität

  Alt 11. Mai 2007, 10:05
japp
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#9

Re: TButton1-X gleiche Funktionalität

  Alt 11. Mai 2007, 10:08
nein, du musst den 50 buttons im onclick-ereignis die eine prozedur angeben!
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: TButton1-X gleiche Funktionalität

  Alt 11. Mai 2007, 10:13
Nein. Du weist allen Buttons diese eine Event-Methode zu. Du hast ja Button1Click bereits. Im Objektinspektor der IDE waehlst du jetzt erst mal den Namen Button1Click im OnClick-Event aus und nennst ihn um. Das aendert freundlicherweise den Namen ueberall in der Source. Danach markierst du alle anderen Buttons. Beim OnClick-Eintrag im Objektinspektor kannst du nun den Dropdown benutzen und den neuen Namen direkt auswaehlen. Damit haben dann alle Buttons diesen Event zugewiesen bekommen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:22 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