Hallo Liebe Community,
seid gegrüßt!
Also ich habe versucht so eine Art "GraffitiWand" zu programmieren ...
hier ist der Code ...
Delphi-Quellcode:
var
GUI: TGUI;
Spruch :
array [1..50]
of TLabel;
//n : integer; //Anzahl der Labels
implementation
{$R *.DFM}
procedure TGUI.FormCreate(Sender: TObject);
var
x,y : Integer;
begin
Randomize;
for x:=0
to GraffitiWand.Height
do // Macht Leinwand weiß
for y:=0
to GraffitiWand.Width
do
GraffitiWand.Canvas.Pixels[x,y];
end;
procedure TGUI.GErzeugenBtnClick(Sender: TObject);
var
i : Integer;
begin
for i:=1
to 50
do
begin
Spruch[i]:= TLabel.Create(self);
//hier habe ich es mal mit (GraffitiWand) versucht und parent:=Graffitiwand KLAPPT ABER NICHT
Spruch[i].parent:=self
as TWincontrol;
Spruch[i].Transparent:=True;
//wegen Hintergrund
Spruch[i].Top:=Random(220);
// hier ist der Bereich der Leinwand die die Position der Label eingrenzen sollte ...
Spruch[i].Left:=Random(230);
// hier ist der Bereich der Leinwand die die Position der Label eingrenzen sollte ...
Spruch[i].Font.Size:=17;
Spruch[i].Font.
Name:='
Playbill';
Spruch[i].Caption:=GEingabeEdt.Text;
end;
end;
NUN das programm soll auf einer Leinwand (bei mir mit "GraffitiWand" benannt ; typ TImage)
Sprüche abbilden die vorher auf einem Edit gemacht wurden ...
Das Problem :
Ich bekomme es nicht hin das ich sage das die erzeugten Labels(die die Sprüche enthalten...) der Leinwand gehören, sprich wenn sie per Zufall erzeugt werden, werden sie auch außerhalb der Leinwand positioniert ...
Ok nun könnte man einfach die perfekte Position der Leinwand raus finden, dass ist aber nicht sehr elegant ... und birgt einen Fehler nämlich wenn das Label zu weit rechts positioniert wird, überschreitet es die Leinwand ...
Wunschlösung wäre das die Labelsprüche nur innerhalb dieser Leinwand angezeigt werden ... aber dafür müsste ich die Label's abhängig zur Leinwand machen , aber wie ????
bitte um Hilfe
PS : ach ja und noch etwas ...
Wenn ich die Label dann wieder Löschen möchte geht das mit free und einer for-schleife oder eher anders ... ?
PSS: ich will einfach mal einen smiley ausprobiern und hiermit tue ich das ...