|
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Trække et tal rundt Fra : Harald |
Dato : 07-08-02 21:44 |
|
Hej
Jeg har et billede i en TImage. Jeg har brug for at indsætte nogle texter i
dette billede men det skal virke sådan:
Man trykker et sted i billedet og teksten kommer frem hvor man nu trykker,
sålænge man holder musse knappen nede kan man trække teksten rundt og først
når man slipper knappen bliver texten skrevet fast.
Nogen ideer til hvordan man bedst løser det?
Mvh
HK
| |
Casper A. Hansen (12-08-2002)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Casper A. Hansen |
Dato : 12-08-02 11:45 |
|
"Harald" <swobu@kroning.dk> wrote in message news:<3d518678$0$89532$edfadb0f@dspool01.news.tele.dk>...
> Hej
>
> Jeg har et billede i en TImage. Jeg har brug for at indsætte nogle texter i
> dette billede men det skal virke sådan:
> Man trykker et sted i billedet og teksten kommer frem hvor man nu trykker,
> sålænge man holder musse knappen nede kan man trække teksten rundt og først
> når man slipper knappen bliver texten skrevet fast.
> Nogen ideer til hvordan man bedst løser det?
>
> Mvh
> HK
Det var godt nok et kompliceret problem.
Du kan vel bare lave en gennemsigtig label (Transparent := True) som
du flytter rundt med oven på dit image vha. OnMouseMove event.
Tilsidst skriver du bare teksten i dit image ved at lade en canvas
pege på dit image og kalde DrawText eller lignende på den canvas.
/Casper
| |
Harald (12-08-2002)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Harald |
Dato : 12-08-02 15:17 |
|
"Casper A. Hansen" <cah@skygate.dk> skrev i en meddelelse
news:d581ee7f.0208120244.40746628@posting.google.com...
> "Harald" <swobu@kroning.dk> wrote in message
news:<3d518678$0$89532$edfadb0f@dspool01.news.tele.dk>...
> > Hej
> >
> > Jeg har et billede i en TImage. Jeg har brug for at indsætte nogle
texter i
> > dette billede men det skal virke sådan:
> > Man trykker et sted i billedet og teksten kommer frem hvor man nu
trykker,
> > sålænge man holder musse knappen nede kan man trække teksten rundt og
først
> > når man slipper knappen bliver texten skrevet fast.
> > Nogen ideer til hvordan man bedst løser det?
> >
> Det var godt nok et kompliceret problem.
> Du kan vel bare lave en gennemsigtig label (Transparent := True) som
> du flytter rundt med oven på dit image vha. OnMouseMove event.
> Tilsidst skriver du bare teksten i dit image ved at lade en canvas
> pege på dit image og kalde DrawText eller lignende på den canvas.
Tja!
| |
![](/images/tree/0.gif) David A. D. Konrad (12-08-2002)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : David A. D. Konrad |
Dato : 12-08-02 15:28 |
|
"Harald" <swobu@kroning.dk> skrev i en meddelelse news:3d57c35c$0$53108
> > Det var godt nok et kompliceret problem.
> > Du kan vel bare lave en gennemsigtig label (Transparent := True) som
> > du flytter rundt med oven på dit image vha. OnMouseMove event.
> > Tilsidst skriver du bare teksten i dit image ved at lade en canvas
> > pege på dit image og kalde DrawText eller lignende på den canvas.
>
> Tja!
Det behøves ikke at være så kompliceret igen. Hold en kopi af dit billede.
Hver gang brugeren bevæger musen, når denne er i "tekstplaceringsmode",
kopierer du den stump af billedet teksten "dækker" fra kopien over på
brugerens billede, noterer den nye X,Y position, og skriver derefter teksten
ud det nye sted. På den måde vil tekst nemt kunne blive trukket rundt indtil
brugeren slipper musen - når den slippes undlader man således blot af
"nulstille" det område teksten sidst blev skrevet ud på...Størrelsen af det
område af billede du skal genopfriske hvergang kan i øvrigt findes med
funktionerne TextWidth og TextHeight, så det er ikke meget kode du skal lave
førend det virker. Flimrer resultatet for meget kan du sætte DoubleBuffered.
Et godt tip er iøvrigt at sætte nogle nedre grænser for hvornår brugeren
rent faktisk har flyttet musen - mindst 2 eller 4 pixels i én af retningerne
plejer at være tilstrækkeligt - lavere "opløsning" kan hurtigt se en smule
uproffesionelt ud, da teksten vil flimre kraftigt som følge af de mange,
repetetive opdateringer af billedet.
| |
![](/images/tree/0.gif) ![](/images/tree/0.gif) Harald (12-08-2002)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Harald |
Dato : 12-08-02 16:40 |
|
"David A. D. Konrad" <david_konrad@hotmail.com> skrev i en meddelelse
news:aj8gm0$mpc$1@sunsite.dk...
> "Harald" <swobu@kroning.dk> skrev i en meddelelse news:3d57c35c$0$53108
>
> > > Det var godt nok et kompliceret problem.
> > > Du kan vel bare lave en gennemsigtig label (Transparent := True) som
> > > du flytter rundt med oven på dit image vha. OnMouseMove event.
> > > Tilsidst skriver du bare teksten i dit image ved at lade en canvas
> > > pege på dit image og kalde DrawText eller lignende på den canvas.
> >
> > Tja!
>
> Det behøves ikke at være så kompliceret igen. Hold en kopi af dit billede.
> Hver gang brugeren bevæger musen, når denne er i "tekstplaceringsmode",
> kopierer du den stump af billedet teksten "dækker" fra kopien over på
> brugerens billede, noterer den nye X,Y position, og skriver derefter
teksten
> ud det nye sted. På den måde vil tekst nemt kunne blive trukket rundt
indtil
> brugeren slipper musen - når den slippes undlader man således blot af
> "nulstille" det område teksten sidst blev skrevet ud på...Størrelsen af
det
> område af billede du skal genopfriske hvergang kan i øvrigt findes med
> funktionerne TextWidth og TextHeight, så det er ikke meget kode du skal
lave
> førend det virker. Flimrer resultatet for meget kan du sætte
DoubleBuffered.
> Et godt tip er iøvrigt at sætte nogle nedre grænser for hvornår brugeren
> rent faktisk har flyttet musen - mindst 2 eller 4 pixels i én af
retningerne
> plejer at være tilstrækkeligt - lavere "opløsning" kan hurtigt se en smule
> uproffesionelt ud, da teksten vil flimre kraftigt som følge af de mange,
> repetetive opdateringer af billedet.
LOL, nej nu har jeg lavet det med en label. Jeg havde først lavede det med
en TImage oven på min Image som jeg så trak rundt. Det virkede fint men blev
aldrig rigtig pænt, teksten der blev trukket rundt var uldent i kanterne,
det var self. kun et lille problem mens man trak texten rundt. Hvorfor jeg
ikke tænkte på at bruge en label ved jeg virkelig ikke :)
Mvh
HK
| |
![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) David A. D. Konrad (13-08-2002)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : David A. D. Konrad |
Dato : 13-08-02 07:25 |
|
"Harald" <swobu@kroning.dk> skrev i en meddelelse news:3d57d6d7$0$53121
> LOL,
?? Det er ellers en ganske kendt og benyttet metode.
> nej nu har jeg lavet det med en label. Jeg havde først lavede det med
> en TImage oven på min Image som jeg så trak rundt. Det virkede fint men
blev
> aldrig rigtig pænt, teksten der blev trukket rundt var uldent i kanterne,
Præcis. Du har slet ikke samme grad af kontrol med en label - og kan
endvidere ikke style labelen, f.eks have første karakter i bold etc...
| |
![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) ![](/images/tree/0.gif) Harald (13-08-2002)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | Kommentar Fra : Harald |
Dato : 13-08-02 10:58 |
|
"David A. D. Konrad" <david_konrad@hotmail.com> skrev i en meddelelse
news:aja8ob$b5s$1@sunsite.dk...
> "Harald" <swobu@kroning.dk> skrev i en meddelelse news:3d57d6d7$0$53121
>
> > LOL,
>
> ?? Det er ellers en ganske kendt og benyttet metode.
Ok sorry, jeg troede det var en vittighed for det er da lidt lettere bare at
trække en label rundt.
> > nej nu har jeg lavet det med en label. Jeg havde først lavede det med
> > en TImage oven på min Image som jeg så trak rundt. Det virkede fint men
> blev
> > aldrig rigtig pænt, teksten der blev trukket rundt var uldent i
kanterne,
>
> Præcis. Du har slet ikke samme grad af kontrol med en label - og kan
> endvidere ikke style labelen, f.eks have første karakter i bold etc...
Næ, men sålænge det er simpel text, i mit tilfælde et tal mellem 1 og 266,
så virker det fint med en label.
Mvh
HK
| |
|
|