|
| Fejl Fra : Henning Madsen |
Dato : 10-11-07 22:09 |
|
På Form1 har jeg plaseret en Image.
På Imagen er der anbragt en BMP Tegning.
På tegningen skal der med et museklik anbringes en lille rød cirkel (4
piksel).
Cirklen bliver i Y retningen desværre anbragt ca 2 cm højere oppe en
musepilen,
men rigtig i X retningen.
Afvigelsen bliver større og større i bunden af Imagen.
Har kontroleret alverdens ting men kan ikke se hvad det skylles.
Er der nogen der kan give mig nogle ideer vel det være meget velkommen.
Bruger Delphi 7 og XP
På forhånd tak
mvh
Henning
| |
Harald (10-11-2007)
| Kommentar Fra : Harald |
Dato : 10-11-07 22:24 |
|
"Henning Madsen" <hkjeldm@mail.dk> skrev i en meddelelse
news:47361b73$0$2094$edfadb0f@dtext02.news.tele.dk...
> På Form1 har jeg plaseret en Image.
> På Imagen er der anbragt en BMP Tegning.
> På tegningen skal der med et museklik anbringes en lille rød cirkel (4
> piksel).
> Cirklen bliver i Y retningen desværre anbragt ca 2 cm højere oppe en
> musepilen,
> men rigtig i X retningen.
> Afvigelsen bliver større og større i bunden af Imagen.
>
> Har kontroleret alverdens ting men kan ikke se hvad det skylles.
> Er der nogen der kan give mig nogle ideer vel det være meget velkommen.
>
> Bruger Delphi 7 og XP
> På forhånd tak
Nok fordi dit billede ikke vises på formen i dens oprindelige størrelse, men
svært at sige uden at se noget kode.
/HK
| |
Henning Madsen (10-11-2007)
| Kommentar Fra : Henning Madsen |
Dato : 10-11-07 23:04 |
|
Tak for svaret Harald
Tror, mener og ved ikke, men fejlen må vel være i denne Procedure.
Yderlig kan oplyses at i position Y= 1 tegnes cirklen korekt, men afvigelsen
bliver større og større ned mod bunden.
Tegningen skulde være i den rigtige størrelse.
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
kode, T: Integer;
begin
// Her sikres at der vælges et navn til den cirkel der oprettes.
If (Edit2.Text = '') And (Cursor = crDefault) Then ShowMessage('Marker et
navn');
If (Cursor = crDefault) And (Button = mbLeft) And (Edit2.Text > '') And
(Image1.Canvas.Pixels[X,Y] = 6710886) Then
Begin
//** Jord farven **//
//************************************************//
// Her bruges en eventuel tom plads til en cirkel //
//************************************************//
Kode := 1;
For T := 1 To Nr Do
Begin
If (Poster[T].PositionX = 0) And (Poster[T].PositionY = 0) Then
Begin
Kode := 0;
Break;
End;
End;
//***************************//
// Hvis der er en tom plads. //
//***************************//
If Kode = 0 Then
Begin
Poster[T].PositionX := X;
Poster[T].PositionY := Y;
Poster[T].Diameter := Radius;
Poster[T].Navn := Edit2.Text;
Form1.Image1.Canvas.Pen.Color := clBlack;
Form1.Image1.Canvas.Brush.Color := Farve;
Form1.Image1.Canvas.Ellipse(X - Radius,Y - Radius,X + Radius, Y +
Radius);
End;
//********************************//
// Hvis der ikke er en tom plads. //
//********************************//
If Kode = 1 Then
Begin
Nr := Nr + 1;
Poster[Nr].PositionX := X;
Poster[Nr].PositionY := Y;
Poster[Nr].Diameter := Radius;
Poster[Nr].Navn := Edit2.Text;
Form1.Image1.Canvas.Pen.Color := clBlack;
Form1.Image1.Canvas.Brush.Color := Farve;
Form1.Image1.Canvas.Ellipse(X - Radius, Y - Radius, X + Radius, Y +
Radius);
End;
End;
//*************//
// Slet Cirkel //
//*************//
If (Cursor = crCross) And (Button = mbRight) Then
Begin
With Form1.Image1.Canvas Do
Begin
Pen.Color := 6710886; //Jord farven.
Brush.Color := 6710886; //Jord Farven.
Radius := Poster[GemNr].Diameter;
Ellipse(Poster[GemNr].PositionX - Radius, Poster[GemNr].PositionY -
Radius,
Poster[GemNr].PositionX + Radius, Poster[GemNr].PositionY + Radius);
Poster[GemNr].PositionX := 0;
Poster[GemNr].PositionY := 0;
End;
End;
//*************//
// Flyt cirkel //
//*************//
If Button = mbMiddle Then
Begin
With Form1.Image1.Canvas Do
Begin
Brush.Color := 6710886; //Jord farven.
Pen.Color := 6710886; //Jord farven.
Radius := Poster[GemNr].Diameter;
Ellipse(Poster[GemNr].PositionX - Radius, Poster[GemNr].PositionY -
Radius,
Poster[GemNr].PositionX + Radius, Poster[GemNr].PositionY + Radius);
Pen.Color := clBlack;
Brush.Color := Farve;
Ellipse(X - Radius, Y - Radius, X + Radius, Y + Radius);
Poster[GemNr].PositionX := X;
Poster[GemNr].PositionY := Y;
End;
End;
End;
//------------------------------------------------------------------------------
Skal der måske ændres på Imagens opsætning ??
Håber Proceduren kan give en løsning.
mvh.
Henning
| |
Harald (11-11-2007)
| Kommentar Fra : Harald |
Dato : 11-11-07 01:22 |
|
"Henning Madsen" <hkjeldm@mail.dk> skrev i en meddelelse
news:47362860$0$2107$edfadb0f@dtext02.news.tele.dk...
> Tak for svaret Harald
> Tror, mener og ved ikke, men fejlen må vel være i denne Procedure.
> Yderlig kan oplyses at i position Y= 1 tegnes cirklen korekt, men
> afvigelsen bliver større og større ned mod bunden.
> Tegningen skulde være i den rigtige størrelse.
Jeg har smidt en TImage med en bmp på en form og taget din kode:
Form1.Image1.Canvas.Pen.Color := clBlack;
Form1.Image1.Canvas.Brush.Color := clwhite;
Form1.Image1.Canvas.Ellipse(X - Radius, Y - Radius, X + Radius, Y
+Radius);
og smidt ind i Image1MouseDown og det tegner en fin cirkel lige der hvor
musen er.
Så jeg gætte stadig på at du evt. har sat Stretch=True
/HK
| |
Henning Madsen (11-11-2007)
| Kommentar Fra : Henning Madsen |
Dato : 11-11-07 10:09 |
|
"Harald" <noname@nomail.dk> skrev i en meddelelse
news:47364b41$0$90263$14726298@news.sunsite.dk...
> "Henning Madsen" <hkjeldm@mail.dk> skrev i en meddelelse
> news:47362860$0$2107$edfadb0f@dtext02.news.tele.dk...
>> Tak for svaret Harald
>> Tror, mener og ved ikke, men fejlen må vel være i denne Procedure.
>> Yderlig kan oplyses at i position Y= 1 tegnes cirklen korekt, men
>> afvigelsen bliver større og større ned mod bunden.
>> Tegningen skulde være i den rigtige størrelse.
>
> Jeg har smidt en TImage med en bmp på en form og taget din kode:
> Form1.Image1.Canvas.Pen.Color := clBlack;
> Form1.Image1.Canvas.Brush.Color := clwhite;
> Form1.Image1.Canvas.Ellipse(X - Radius, Y - Radius, X + Radius, Y
> +Radius);
>
> og smidt ind i Image1MouseDown og det tegner en fin cirkel lige der hvor
> musen er.
> Så jeg gætte stadig på at du evt. har sat Stretch=True
>
> /HK
>
>Du har fuldstendig ret Harald Stretch var sat til True, så nu virker alt
>igen.
Tak for hjælpen
mvh
Henning
| |
|
|