Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi den Caption eines Dynamisch erstellten Panels ändern (https://www.delphipraxis.net/13951-den-caption-eines-dynamisch-erstellten-panels-aendern.html)

Deven 29. Dez 2003 20:11


den Caption eines Dynamisch erstellten Panels ändern
 
Hallo zusammen!

Ich habe da mal eine Frage!
Ich lasse hier ein panel dynamisch generieren und in diesem panel ein Image

Jetzt möchte ich dem Panel gerne ein Caption zuordnen aber habe keine ahnung wie ^^"

Könnte ihr mir helfen?

Delphi-Quellcode:
procedure TForm1.Case1;
var i:integer;
    test:string;
const
   NamePrefix = 'Panel';
   NamePrefix2 = 'Image';
begin
        links :=10;
        oben :=10;
        breite :=120;
        hoehe :=120;
        verschiebung :=130;
        bild := 0;
        loop := 0;
        use := 0;
        use1 := 0;
        pa := 1;

        for i := 1 to 4 do
        begin
         MyPanel1 := TPanel.Create(Self);
         with MyPanel1 do
          begin
            Caption := '';
            Name := NamePrefix + IntToStr(i);
            SetBounds(links, oben, breite, hoehe);
            Inc(oben,verschiebung); // Erhöht "oben" um "verschiebung"

            if i = 2 then
              begin
                Inc(links,verschiebung);
                oben := 10;
              end;
           parent:=Self;
          end;

         MyImage1 := TImage.Create(Self);
         with MyImage1  do
          begin
            Name := NamePrefix2 + IntToStr(i);
            SetBounds(3,3,114,114);
           
              repeat
                bild := Random(2);
                bilderzuordnung;
              until loop = 1;

            bilderzuordnung2;

            Picture.LoadFromFile(useBild);

            parent:=MyPanel1;
          end;
        end;

end;

Sanchez 29. Dez 2003 20:24

Re: den Caption eines Dynamisch erstellten Panels ändern
 
hallo,

Wie wärs mit MyPanel1.Caption := 'xxx';

grüße, daniel

mirage228 29. Dez 2003 20:27

Re: den Caption eines Dynamisch erstellten Panels ändern
 
Hi,

schau mal nach Hier im Forum suchenFindComponent ^^

mfG
mirage228

Deven 29. Dez 2003 20:38

Re: den Caption eines Dynamisch erstellten Panels ändern
 
@ Daniel

habe ich auch versucht :)

Geht leider nicht

sakura 29. Dez 2003 20:41

Re: den Caption eines Dynamisch erstellten Panels ändern
 
Kann es sein, daß es geht, aber der Text unter dem Bild ist? Der Text wird in Panels immer zentriert dargestellt.

...:cat:...

himitsu 29. Dez 2003 20:48

Re: den Caption eines Dynamisch erstellten Panels ändern
 
JA :wink:

Deven 30. Dez 2003 10:50

Re: den Caption eines Dynamisch erstellten Panels ändern
 
jap
der caption ist unter dem bild :)

Aber da das ganze ein memory werden soll
blende ich die image aus und die wird dann erst beim drauf klicken sichtbar :)

und somit sieht man den namen des panels und denn möchte ich ändern ;)

Sanchez 30. Dez 2003 10:55

Re: den Caption eines Dynamisch erstellten Panels ändern
 
Mir fällt gerade auf, dass du jedes Panel dass du erzeugst in MyPanel1 hast.
Wo setzt du denn die Caption? Nach dem erzeugen aller Panele?
Wenn ja verlierst du immer die Referenz auf das letzte Panel, wenn du ein neues erzeugst, also sprichst du mit MyPanel1.Caption immer nur die letzte Panele an.

Ich würde mit Arrays arbeiten.

grüße, daniel

Deven 30. Dez 2003 11:31

Re: den Caption eines Dynamisch erstellten Panels ändern
 
Also des Rätselslösung ist denkbar einfach :roll:

Der Caption den ich hier versuche zu setzen:

Delphi-Quellcode:
for i := 1 to 4 do
        begin
         MyPanel1 := TPanel.Create(Self);
         with MyPanel1 do
          begin
            Caption := '';
            Name := NamePrefix + IntToStr(i);
            SetBounds(links, oben, breite, hoehe);
            Inc(oben,verschiebung); // Erhöht "oben" um "verschiebung"
Steht nur an der falschen Stelle.
Das Kind braucht logischerweise ERST einen Namen bevor man es verändern kann und somit muss man lediglich den Captionteil unter die Namensgebung schreiben.

Delphi-Quellcode:
for i := 1 to 4 do
        begin
         MyPanel1 := TPanel.Create(Self);
         with MyPanel1 do
          begin
            Name := NamePrefix + IntToStr(i);
            Caption := '';
            SetBounds(links, oben, breite, hoehe);
            Inc(oben,verschiebung); // Erhöht "oben" um "verschiebung"
Das ist alles :)

Vielen Dank an Seb G. auch aus dem Forum hier ;)


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