Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TShape zur Laufzeit erzeugen - Verständnisproblem (https://www.delphipraxis.net/99924-tshape-zur-laufzeit-erzeugen-verstaendnisproblem.html)

axellang 19. Sep 2007 16:40


TShape zur Laufzeit erzeugen - Verständnisproblem
 
Hallo Leute,

könnte mir bitte jemand sagen warum dass nicht funktioniert:

Delphi-Quellcode:
procedure TForm1.Shape_2;
var
    dummy_2 : TShape;
begin
     dummy_2 := TShape.Create(Self);

   try
     dummy_2.Shape := stCircle;
     dummy_2.Parent := Panel1;
     dummy_2.Width := 30;
     dummy_2.Height := 30;
     dummy_2.Top := 69;
     dummy_2.Left := 69;
     dummy_2.Brush.Color := clBlack;
     dummy_2.Pen.Color := clCream;
     dummy_2.Show;
   finally
    dummy_2.free;
   end;
end;
Aber das wohl funktioniert:
Delphi-Quellcode:
procedure TForm1.Shape_1;
var
   i : Integer;
     dummy : TShape;
begin
    for i:= 0 to 1 do
       begin
        dummy := TShape.Create(Self);
        dummy.Shape := stCircle;
        dummy.Parent := Panel1;
        dummy.Width := 30;
        dummy.Height := 30;
        dummy.Top := 69;
        dummy.Left := 69;
        dummy.Brush.Color := clBlack;
        dummy.Pen.Color := clCream;
        dummy.Show;
      end;

    dummy.Free;
  end;
Gruß
Alexander

bernau 19. Sep 2007 16:47

Re: TShape zur Laufzeit erzeugen - Verständnisproblem
 
Zitat:

Zitat von axellang
könnte mir bitte jemand sagen warum dass nicht funktioniert:

Beim ersten mal erzeugst du das Shape und gibst es sofort wieder frei. Damit ist es nicht zu sehen, weil's nicht mehr da ist.

Beim zweiten mal hast du eine Schleife, in dem du zwei mal ein Shape erzeugst. Das Zweite wird mit free sofort wieder entfernt. Damit hast du noch eines, welches sichtbar ist.


Gerd

axellang 19. Sep 2007 17:01

Re: TShape zur Laufzeit erzeugen - Verständnisproblem
 
Tss, Tss, Tss :wall:

Danke.

Sollte doch wohl für heute aufhören.

Axel


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 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