Autor Beitrag
Timelesk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 82


Delphi 2006 Prof
BeitragVerfasst: So 19.06.05 09:53 
Hallo,

ich lasse Buttons während der Laufzeit erstellen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
var
  butt: TButton;

procedure Seite(name: array of string;tag: array of integer);
var
  i,top,left: integer;
begin
  top := 15;
  left := 0;
          
  i := 0;
  while name[i] <> '' do begin
    if 20+(left*140)+130 > main.Width-20 then begin
      top := top+35;
      left := 0;
    end;
    butt := TButton.Create(butt);
    butt.Parent := main;
    butt.Show;
    butt.Left := 20+(left*140);
    butt.Width := 130;
    butt.Top := top;
    butt.Caption := name[i];
    butt.Tag := tag[i];
    butt.Hint := 'Zum Downloaden draufklicken';
    butt.OnClick := main.Button;   
    inc(i);
    inc(left);
  end;
end;


Nun habe ich aber das Problem, dass diese Buttons während der Laufzeit wieder verschwinden müssen und das bekomm ich einfach nicht hin!
Die Buttons müssen entfernt werden und neue Buttons wieder erstellt werden. Die Anzahl der Buttons variiert immer.

Ich hab schon versucht den Buttons einen Namen zuzuweisen und darüber dann die Buttons zu löschen/zerstören, aber das hat auch nicht funktioniert bzw ist es an meinen Kentnissen gescheitert:

butt.Free; <-- keinerlei Wirkung
butt.Destroy; <--- keinerlei Wirkung
butt1.Free/Destroy; <--- keinerlei Wirkung

Was mach ich falsch bzw. geht mein Vorhaben überhaupt?

Vielen Dank für eure Hilfe :D
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 19.06.05 10:56 
Kannst Du mal deine Main.Button posten?

Außerdem: Buttons sich selber nie im OnClick freigeben lassen. Nutzte dazu das OnMouseUp-Ereignis (Erfahrungssache, AXMD hatte damit mal AV-Probleme).

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
crakos
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 195


D2k5 Pers
BeitragVerfasst: So 19.06.05 11:22 
ja hatte das selbe prob :) mach es am besten mit einer objectlist must button da hinzufügen, und kanst ihn dort dann ganz einfach wegmachen :)
Ein Beispiel für eine Objectliste findest du hier

_________________
Das Ende der Menschheit ist der Anfang der Unendlichkeit.
Timelesk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 82


Delphi 2006 Prof
BeitragVerfasst: So 19.06.05 11:33 
Hallo,

Die Buttons werden eigentlich in dieser Procedure am Anfang freigegeben!
Also bevor die Buttons generiert werden, sollen die letzten Buttons freigegeben werden!
durch die butt.Tag-Angabe kann ich in der OnClick-Procedure mit ner case-schleife die einzelnen Button-Funktionen zuweisen.

Das Problem ist einfach, dass ich es nicht schaffe, die Buttons vor dem erneuten generieren freizugeben/ zu zerstören/ zu entfernen!

@crakos: Ich schau mir dein's mal an...


Vielen Dank
Timelesk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 82


Delphi 2006 Prof
BeitragVerfasst: So 19.06.05 11:50 
Hi,

habe crakos Link genauer betrachtet und getestet!

Ergebnis: Es funktioniert einwandfrei!


Vielen herzlichen Dank