Einzelnen Beitrag anzeigen

Pelzi

Registriert seit: 26. Okt 2005
Ort: Kiel
13 Beiträge
 
Delphi 7 Personal
 

Re: Buttons dynamisch erstellen

  Alt 27. Feb 2006, 18:01
Zitat von glkgereon:
Zitat von Pelzi:
Zitat von glkgereon:
Zitat von jfheins:
Du musst noch top, height und width enstellen, damit der Button weis, wo er ist

Ach, und nen Parent braucht er auch noch ...
Idealerweise sagst du ihm auch noch was er beim OnClick machen soll (Wozu sonst ein Button?)

Und damit er wirklich gezeigt wird muss man glaub ich noch Button.Show; sagen...
So der Tipp mit dem Parent war gut
Wo du es schon ansprichst, Onclick ereignisse, in diesem Fall brauchte ich die ganzen buttons zwar nur wegen ihres schönen aussehens, aber in zukunft kann es durchaus passieren, das sie etwas bewirken sollen.
Kann mir da jemand einen Link geben oder erklären wie es funktioniert?

Pelzi
Weil sie schön aussehen?

OnClick:

einfach eine
procedure Click(Sender: TObject);
in der Form deklarieren und dann
Button.OnClick:=Click;
Also wo jetzt die Prozedur deklarieren?
wenn ich es so mache bekomme ich eine Fhelermeldungmal die ganze unit)
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  buttons: array[0..20] of TButton;
  forms: array[0..20] of TForm;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i:Integer;
begin
  for i:=0 to 20 do
  begin
    buttons[i]:=TButton.create(form1);
    buttons[i].Left:=20;
    buttons[i].top:=80;
    buttons[i].height:=35;
    buttons[i].width:=80;
    buttons[i].Visible:=true;
    forms[i]:=TForm.Create(form1);
    buttons[i].Parent:=forms[i];
    forms[i].Visible:=true;
    forms[i].left:=40*i;
    forms[i].width:=38;
    buttons[i].OnClick:=click;
  end;
end;
procedure click(Sender: TObject);
begin
  showmessage('du hast geklicked');
end;

end.
Zitat:
[Fehler] Unit1.pas(46): Inkompatible Typen: 'Liste der Parameter ist unterschiedlich'

Pelzi
  Mit Zitat antworten Zitat