![]() |
beim zweiten Aufruf der Procedure wird nichtmehr gezeichnet
Hi Leute!
Als o ich hab ne Procedure entworfen, welche Notenlinien zeichne. Beim ersten Aufruf auf nem Image funktioniert alles noch, aber beim zweitenmal zeichnet er nicht. Woran kann das liegen?
Delphi-Quellcode:
Ich erstelle das zweite Image zwar dynamisch, aber acuh wenn ich ein zweites statisch erstelle, zfunktiniert nichts..*grumel*
procedure notenlinie_zeichnen(shape:Timage;abstand:integer;canvas:Tcanvas);
var nl,x1,x2,y:integer; begin for nl:=1 to 5 do begin y:= shape.top + 6*abstand + (nl-1)*abstand; // 6 * Abstand = freier Abstand nach oben für Töne Oberhalb d. Notensystems -->shape1.top= oberer x,yWert von c'''' = 1 bei Schnittstellendatei x1:= shape.left; x2:=shape.left + shape.width; Canvas.Brush.Color:=clblack; Canvas.PolyLine([Point(x1,y),Point(x2,y)]); end; end; HDanke schon einmal im voraus! Anna |
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Überleg Dir mal, auf wessen Canvas Du zeichnest.
|
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Wie erzeugst du die Imgages? Wo rufst du die Methode auf?
|
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
@DeddyH: auf wessen Canvas?.. na ich sag ihm doch bei der Parameterübergabe, wie das Image heißt... Oder was muss ich da noch berücksichtigen? *komisch guck*
@mkinzle: Naja.. ich hab den Aufruf nicht als MEthode gespeichert, da ich 1. nur an einer Stelle brauche u. 2. nicht weiß wie das mache. :angel: Also erstell ich die neuen Images wie folgt:
Delphi-Quellcode:
Und die notenlinie_zeichnen Procedure rufe ich wie eine normale Procedure auf...
procedure TForm1.Button1Click(Sender: TObject);
var image_neu: Timage; begin image_neu:=Timage.Create(Self); with image_neu do begin Parent:=Form1; Left:=100; Top:=100; end; end; MfG Anna |
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Und wo?
|
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
na im Hauptprogramm..unit1 beim Buttonclick..oder wie meisnt du das wo?
|
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Versuch es mal mit
Delphi-Quellcode:
shape.Canvas.Brush.Color:=clblack;
shape.Canvas.PolyLine([Point(x1,y),Point(x2,y)]); |
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Er möchte den Aufruf sehen. :zwinker:
|
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
Irgendwie hast du einen Instinkt dafür, das wichtige wegzulassen.
|
Re: beim zweiten Aufruf der Procedure wird nichtmehr gezeich
@mkinzler
*komisch guck*...
Delphi-Quellcode:
... sry... nur den aufruf finde ich nicht spektakulär... ich hab die werte eingesetzt...
with image_neu do
begin Parent:=ScrollBox1; Left:=image_alt.left; Top:=image_alt.Top+image_alt.Height+c_zwischen; width:=image_alt.Width; height:=image_alt.Height; end; image_alt:=image_neu; notenlinie_zeichnen(image_alt,c_abstand,canvas); with image2 do [b] notenlinie_zeichnen(image_alt,c_abstand,canvas)[/b] end; @DeddyH Das habe ich schon ausprobiert... zudem setzte ich im gesamtenprogramm, die Farbe nur auf Schwarz, aber nicht aud weiß... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 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