/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
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



Søg
Reklame
Statistik
Spørgsmål : 177417
Tips : 31962
Nyheder : 719565
Indlæg : 6407867
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste