AGB  ·  Datenschutz  ·  Impressum  







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

array Buttons und proceduren

Ein Thema von Chris92 .A · begonnen am 9. Sep 2010 · letzter Beitrag vom 9. Sep 2010
Antwort Antwort
Chris92 .A

Registriert seit: 19. Mai 2010
56 Beiträge
 
#1

array Buttons und proceduren

  Alt 9. Sep 2010, 20:14
Hallo erstmal,
Also ich hab folgendes Problem, dass ich nicht weiß wie man mehreren Buttons die während der Laufzeit erstellt werden verschiedene Procedure zuweisen kann. Die Buttons werden erstellt soviel wie ich gerade will und ich bekomm immer die Procedure einem Button zugewiesen aber wie ändere ich jetzt die Procedure die jetzt z.B: bei den letzten 3 Buttons ändern soll.

Delphi-Quellcode:
unit EigenesTrainingU;

interface

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

type
  TfrmEigenesTraining = class(TForm)
    Label1: TLabel;
    cbxATage: TComboBox;
    procedure cbxATageChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
        btnTag : Array[1..7] of TButton;
        procedure btnTag1(Sender: TObject);
        {procedure btnTag2(Sender: TObject);
        procedure btnTag3(Sender: TObject);
        procedure btnTag4(Sender: TObject);
        procedure btnTag5(Sender: TObject);
        procedure btnTag6(Sender: TObject);
        procedure btnTag7(Sender: TObject);}

    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmEigenesTraining: TfrmEigenesTraining;
  Left,Top,Counter : Integer;
  Change : boolean;

implementation

uses
        EinloggenU;

{$R *.DFM}

procedure TfrmEigenesTraining.cbxATageChange(Sender: TObject);
var I :integer;
begin
        if Change = True then
        for I := 1 to Counter do
        begin
                btnTag[I].Destroy;
                Counter := 0;
        end;
        for I := 1 to strtoint(cbxATage.Items[cbxATage.ItemIndex]) do
        begin
                btnTag[I] := TButton.Create(self);
                btnTag[I].Parent := self;
                btnTag[I].Caption := 'Tag';
                btnTag[I].Left := Left;
                btnTag[I].Top := Top;
                btnTag[I].Visible := True;
                Left := Left + 88;
                Change := True;
                Counter := Counter + 1;
                btnTag[I].OnClick := btnTag1 {PROBLEM PROBLEM PROBLEM PROBLEM}

        end;
end;

procedure TfrmEigenesTraining.FormCreate(Sender: TObject);
begin
        Left := 250;
        Top := 250;
        Change := False;
end;

procedure TfrmEigenesTraining.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
        frmLogin.show;
end;

procedure TfrmEigenesTraining.btnTag1(Sender: TObject);
begin
        frmLogin.show;
end;

end.
Mein Problem im Code findet ihr unter dem Kommentar "{PROBLEM PROBLEM PROBLEM PROBLEM}"


Schonmals danke im vorraus

MFG Chris92 .A

Geändert von mkinzler ( 9. Sep 2010 um 20:19 Uhr) Grund: Code-Tag duech Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: array Buttons und proceduren

  Alt 9. Sep 2010, 20:21
Hierfür existiert der Parameter Sender
Delphi-Quellcode:
procedure TfrmEigenesTraining.FormCreate(Sender: TObject);
begin
        Sender.Left := 250;
        Sender.Top := 250;
        Sender.Change := False;
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Chris92 .A

Registriert seit: 19. Mai 2010
56 Beiträge
 
#3

AW: array Buttons und proceduren

  Alt 9. Sep 2010, 20:29
Sry versteh ich jetzt nicht. Kann auch sein dass ich meine Frage unklar gestellt habe also versuch ich es normal. Also mein Problem liegt darin dass ich nicht weis wie ich z.B: btnTag[I] := btnTag1 danach dann btnTag[I] := btnTag2 danach btnTag[I] := btnTag3 etc... hinkriege I ist der zähler der sich immer um 1 erhöht.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: array Buttons und proceduren

  Alt 9. Sep 2010, 20:31
Du solltest immer die selbe Methode zuweisen und in ihr anhand des Senders entscheiden
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: array Buttons und proceduren

  Alt 9. Sep 2010, 20:49
Mal ein kleines Beispiel, was Markus meint (da gibt's natürlich auch mehrere Möglichkeiten, das umzusetzen):
Delphi-Quellcode:
// ...

type
  TForm1 = class(TForm)
    CreateButtons: TButton;
    procedure MyBtnClick(Sender: TObject);
    procedure CreateButtonsClick(Sender: TObject);
  private
    { Private-Deklarationen }
    MyButtons: array[1..5] of TButton;

// ...

procedure TForm1.CreateButtonsClick(Sender: TObject);
var
  i: Integer;
begin
  for i := 1 to 5 do
  begin
    MyButtons[i] := TButton.Create(Application.MainForm);
    MyButtons[i]. Left := 200;
    MyButtons[i].Top := 20 + i * 30;
    MyButtons[i].Parent := Form1;
    MyButtons[i].Name := 'MyBtn' + IntToStr(i);
    MyButtons[i].Caption := MyButtons[i].Name;
    MyButtons[i].Tag := i; // für die Fallunterscheidung im OnClick
    MyButtons[i].OnClick := MyBtnClick;
    MyButtons[i].Show;
  end;
end;

procedure TForm1.MyBtnClick(Sender: TObject);
begin
  case (Sender as TButton).Tag of
    1: begin
         // Code fürs Button1-Onlick
         ShowMessage('Btn 1');
       end;
    2: begin
         // Code fürs Button2-Onlick
         ShowMessage('Btn 2');
       end;
    3: begin
         // Code fürs Button3-Onlick
         ShowMessage('Btn 3');
       end;
    4: begin
         // Code fürs Button4-Onlick
         ShowMessage('Btn 4');
       end;
    5: begin
         // Code fürs Button5-Onlick
         ShowMessage('Btn 5');
       end;
  end;
end;
Angehängte Dateien
Dateityp: zip Project1.zip (223,9 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Chris92 .A

Registriert seit: 19. Mai 2010
56 Beiträge
 
#6

AW: array Buttons und proceduren

  Alt 9. Sep 2010, 20:58
WOW vielen dank das ist genau das was ich gesucht habe, Dank euch Beiden.

Gut dass man jeden Tag was neues lernen kann

MFG

Chris92 .A
  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 00:24 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