AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dynamisch erstellte Buttons wieder Freigeben
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamisch erstellte Buttons wieder Freigeben

Ein Thema von glkgereon · begonnen am 18. Mai 2005 · letzter Beitrag vom 20. Mai 2005
 
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Dynamisch erstellte Buttons wieder Freigeben

  Alt 18. Mai 2005, 14:10
Hi

ich erstelle ein paar Buttons Dynamisch.
erst mal was code:
Delphi-Quellcode:
  TBtn = record
    Btn: TButton;
    App: String;
  end;

  TForm_Main = class(TForm)
  public
    Btns: array of TBtn;
    Count: Integer;
    procedure AddBtn(Cap, App: String);
    procedure ChangeBtn(Index: Integer; Cap, App: String);
    procedure DelLastBtn;
  end;
Delphi-Quellcode:
procedure TForm_Main.AddBtn(Cap, App: String);
begin
  Inc(Count);
  SetLength(Btns,Count);
  with Btns[Count-1] do
    begin
    Btn:=TButton.Create(Form_Main);
    Btn.Name:='Btn_'+IntToStr(Count);
    Btn.Caption:=Cap;
    Btn.Parent:=Form_Main.Grp_Prog;
    Btn.Show;
    Btn.Left:=8;
    Btn.Height:=25;
    Btn.Width:=122;
    Btn.Top:=24+(Count-1)*33;
    Btn.Tag:=Count;
    Btn.OnClick:=BtnClick;
    end;
end;

procedure TForm_Main.ChangeBtn(Index: Integer; Cap, App: String);
begin
  if Index<Count then
    begin
    if Cap<>'Samethen Btns[Index].Btn.Caption:=Cap;
    if App<>'Samethen Btns[Index].App:=App;
    end;
end;

procedure TForm_Main.DelLastBtn;
begin
  Btns[Count].Btn.Free; //<-- Fehler!!!
  Btns[Count].App:='';
  Dec(Count);
  SetLength(Btns,Count);
end;
So, alles klappt soweit, die Buttons werden wie gewünscht erstellt, angezeigt und geändert.
nun klappt aber das löschen nicht.

muss ich irgendwie den button in der groupbox wieder austragen?

Edit: Achso, folgendes funzt:

Delphi-Quellcode:
procedure TForm_Main.FormClose(Sender: TObject; var Action: TCloseAction);
var i:Integer;
begin
  for i:=0 to Count-1 do Btns[i].Btn.Free;
  SetLength(Btns,0);
end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
 


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 19: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