Autor Beitrag
MichiM
Hält's aus hier
Beiträge: 8



BeitragVerfasst: So 18.12.05 13:34 
Hallo zusammen,

ok, und dann würd mich noch interessieren, wie man ein Objekt wie z.B. Panel zum Container macht. ;)

Ich möchte z.B. eine Grafik in ein Panel reinsetzen.

Nehmen wir ein Form Form1, ein Panel Panel1 in diesem Form und nun lade ich über TBitmap.LoadFromFile eine Grafik, die in dieses Panel Panel1 eingebettet werden soll.
Wie mach ich deutlich, dass diese Grafik dem Panel gehört?

Zusatzfrage: Welche Methode wird in Delphi benötigt, um so eine Grafik zu aktualisieren, wenn die Fenstergröße z.B. zuerst verringert und dann wieder vergrößert wird? Da werden ja die zwischenzeitlich ausgeblendeten Teile nicht mehr automatisch eingeblendet.

MfG
Michi
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: So 18.12.05 13:47 
Hallo,

Du kannst das folgendermaßen (ich erklär jetzt [noch] nicht den Hintergrund, vllcht kommst du ja selber drauf)

Auf deine Form (von mir ab jetzt Form1 genannt) setzt du ein Panel (von mir Panel1 genannt). Auf dieses Panel fügst du die Komponente TImage (Image1 von mir genannt) hinzu.

Um das Bild zu laden schreibst du folgendes in eine Procedure deiner Wahl, je nach dem, wann das geschehen soll.
Ich nehme hier das Ereignis Form1.OnCreate

ausblenden Delphi-Quelltext
1:
2:
3:
4:
Procedure Form1Create(Sender: TObject);
begin
form1.Image1.picture.LoadFromFile({der Dateiname hier rein});
end;


eine 2. Möglichkeit wäre, wenn du schon zur Entwurfszeit das Bild haben willst, dass du im Objektinspector auf die Eigenschaft "Picture" des Image1 klickst und dir dann ein Bild auswählst.

Das wars eigetenlich schon.

Gruß alias5000

_________________
Programmers never die, they just GOSUB without RETURN
MichiM Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: So 18.12.05 14:19 
Hi alias5000,

funktioniert soweit. ;)

Versteh ich das richtig - Die Einbettung geschieht also ausschließlich über die Ablage des Image-Objekts im Panel innerhalb des Form-Editors, nicht über den Quellcode?

Das geht für mich zumindest aus
ausblenden Quelltext
1:
Form1.Image1.picture.LoadFromFile(fn);					

hervor. Image1 muss also von woanders her wissen, dass es ins Panel reingehört.

Es ist also dann auch nicht ohne Weiteres möglich, ein Objekt nachträglich in einen anderen Container einzubetten, außer, indem man dort ebenfalls ein Objekt gleicher Klasse erstellt und das Objekt rüberkopiert?

Gruß Michi