![]() |
fillrect funktioniert nur mit konstanten?
moin,
wenn ich ein recteck mit fillrect so zeichne funktioniert das.
Delphi-Quellcode:
wenn ich es so mach nicht.
image1.canvas.fillrect(rect(10,10,100,100);
Delphi-Quellcode:
vielleicht kann mir jemand sagen warum? immer wenn ich variablen statt der konstanten nehm tritt das auf. ich habe es auch schon so versucht. dabei
image1.canvas.fillrect(rect(x,10, x+10, 100);
steht der wert der variablen help ja eindeutigt fest. es geht aber trotzdem nicht.
Delphi-Quellcode:
gruß richard
help:=x+10;
image1.canvas.fillrect(rect(x,10, help, 100); |
Re: fillrect funktioniert nur mit konstanten?
Fehlt da nicht noch eine schliessende Klammer?
|
Re: fillrect funktioniert nur mit konstanten?
ja haste recht aber daran liegt das nicht. ist nur ein tippfehler. hab grade nochmal den quelltext überprüft. achja und was ich noch rausgefunden habe.
wenn ich es so schreibe.
Delphi-Quellcode:
dann zeichnet er es komischerweise, aber für help nimmt er irgendeinen wert,jedoch nicht den wert in help. z.b. wenn help den wert 15 hat, zeichnet
image1.canvas.fillrect(rect(10,10, help, 100));
er immer durchgehend nach rechts über die gesamte breite des image. das kuriose ist, wenn ich debugge steht in help der korrekte wert. zeichen tut er aber trotzdem falsch. als ob er beim zeichnen irrsinnig hohe werte nimmt bzw. gruß richard |
Re: fillrect funktioniert nur mit konstanten?
Geht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c, d: Integer; begin Image1.Canvas.Brush.Color := clRed; Image1.Canvas.Brush.Style := bsSolid; a := 10; b := 10; c := 25; d := 25; Image1.Canvas.FillRect(rect(a, b, c, d)); end; |
Re: fillrect funktioniert nur mit konstanten?
@ luckie
führe mal eine operation mit einer deiner variablen durch. z.B.
Delphi-Quellcode:
oder so
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c, d: Integer; begin Image1.Canvas.Brush.Color := clRed; Image1.Canvas.Brush.Style := bsSolid; a := 10; b := 10; c := 25; d := 25; Image1.Canvas.FillRect(rect(a, b, c-50, d)); end;
Delphi-Quellcode:
und teste nochmal bitte
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c, d: Integer; begin Image1.Canvas.Brush.Color := clRed; Image1.Canvas.Brush.Style := bsSolid; a := 10; b := 10; c := 25; d := c+b; Image1.Canvas.FillRect(rect(a, b, c, d)); end; richard |
Re: fillrect funktioniert nur mit konstanten?
Geht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c, d: Integer; begin Image1.Canvas.Brush.Color := clRed; Image1.Canvas.Brush.Style := bsSolid; a := 10; b := 10; c := 150; d := 25; Image1.Canvas.FillRect(rect(a, b, c-100, d)); end; |
Re: fillrect funktioniert nur mit konstanten?
@luckie
welche deplhi version hast du ? hast du eine idee woran es noch liegen kann. wie gesagt in help steht der richtige wert, das hab ich mit f8 überprüft. richard |
Re: fillrect funktioniert nur mit konstanten?
Getestet mit Delphi 6 Professional. Im BSD2006 habe ich gerade ein Projekt auf und will das jetzt nicht schliessen.
|
Re: fillrect funktioniert nur mit konstanten?
Hallo,
ich hab Luckies Cods, aus Neugier, mal in Delphi7 Pro getestet. Und dort funktioniert er auch! |
Re: fillrect funktioniert nur mit konstanten?
@luckie
ja is ok. hab trotzdem vielen dank. es funktioniert jetzt komischer weise auf einmal. das dumme ist nur ich weis nicht warum. naja egal. also nochmals dank an dich für deine unterstützung. :) gruß richard //edit auch dank an dich helmi ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz