Archiv verlassen und diese Seite im Standarddesign anzeigen : FORM Faden
mcbrunox
08.09.2002, 02:38
Warum lässt sich die Form nicht faden ? ich habe XP...das müsste doch funzn....oder?
var i:integer;
begin
i:=0;
repeat
inc(i);
sleep(20);
form1.Alphablendvalue:=i;
until i>=250;
Geht bei mir einwandfrei.. sieht übrigens geil aus, werd mir das mal merken.. :D
Ich glaube, du hast vergessen Form1.AlphaBlend := true; zu machen, oder?
mcbrunox
08.09.2002, 02:56
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung:'Zugriffs verletzung...bla bla bla' ???
Im Cpu Editor bleibt er bei TCustomForm.SetAlphaBlend stehen...
Meine Frage nun...Wo habe ich jetzt wieder nen Fehler ?
var
Form1: TForm1;
i:byte;
implementation
{$R *.dfm}
begin
form1.Alphablend:=true;
i:=0;
repeat
inc(i);
sleep(i);
form1.Alphablendvalue:=i;
until i>=250;
end.
var
Form1: TForm1;
i:byte;
implementation
{$R *.dfm}
begin
form1.Alphablend:=true;
i:=0;
repeat
inc(i);
sleep(i);
form1.Alphablendvalue:=i;
until i>=250;
end.
Hmm.. komischer Code :)
Wieso ist denn i byte statt Integer wie vorhin?
Und.. wieso steht direkt nach implementation das begin ohne den Fktsnamen? Das is ein wenig komisch.
Setz doch einfach direkt in der IDE das AlphaBlend auf true, dann kannst du es im Code weglassen.
mcbrunox
08.09.2002, 03:11
na weil AlphablendValue nur bis 255 geht...darum byte...
ECHT BEI DIR FUNKTIONIERT ES...
WIESO BEI MIR NICHT...ich zuck aus
Jo, geht einwandfrei hier.. mit Integer aber. Und die Debuggermeldung besagt ja, dass der Hund dort begraben ist, wo der AlphaBlendValue geändert wird. Und zwar auf den Bytewert.. ich denke mal, dass das wirklich der Fehler ist. Try it with int :)
mcbrunox
08.09.2002, 10:50
Jetzt probierte ich int und es ging auch nicht...liegt es an einem delphi bug....also ich habe Delphi 6 Enterprise...
Felix Kaiser
08.09.2002, 11:02
Habt ihr auch schon gecheckt, dass im begin .. end. Statement einer Unit noch kein Formular erzeugt wurde? Folglich kann man da nicht drauf zugreifen. Das müsste über Timer gesteuert werden. Das Formular hinterlässt du im Editor mit einer Alphablendvalue von 0 und erhöhst diese über einen Timer.
mcbrunox
08.09.2002, 12:01
So mit diesem Code funktioniert es nun:
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin
i:=0;
repeat
form1.AlphaBlendValue:=i;
inc(i);
until i=255;
Timer1.Enabled:=false;
end;
Aber kann man den Fade schneller machen ?
Also wenn ich intervall auf 0 stelle rührt sich gar nix...
stell ich ihn extrem hoch...auch nischt...und dazwischen ist immer die selbe fadegeschwindigkeit.
Felix Kaiser
08.09.2002, 13:29
procedure TForm1.Timer1Timer(Sender: TObject);
var
n: integer;
begin
n:= AlphaBlendValue+2;
if n > 255 then n:= 255;
AlphaBlendValue:= n;
Timer1.Enabled:= n < 255;
end;
Du kannst das Fading nun steuern über die Länge des Intervals und den Faktor (hier 2), um den der Alphawert erhöht wird.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.