Gå til innhold

Hvordan bytte bilde i en "Timage"?


Anbefalte innlegg

Hei. Jeg prøver å lage en kode som bytter bilde-fil i en "TImage". Ved å bruke en knapp som blar til høyre og en annen knapp som blar til venstre.

 

Hvis jeg har f.eks. 5 bilder, hvordan kan jeg lage en kode som blar i mellom 5 bilder, men bare ett om gangen for hvert trykk på knappen (enten til høyre eller venstre). ?

 

Kanskje litt komplisert spørsmål, men håper noen forstår det og kan gi meg et svar! Setter pris på det =)

Lenke til kommentar
Videoannonse
Annonse

jeg forslår at du bruker en variabel som teller opp eller nedover avhengig av om det er "høyre" eller "venstre " knapp du trykker på.

 

så bruker du verdien i denne variabel til å bestemme hvilket bilde som skal brukes.

 

her har jeg brukt variabelen t

 

 

 

 

 

 

case t of

0:st:=... bilde1

1::st:=.. bilde2

...

4:st:=.. bilde5;

end;

 

eksemplet er ikke helt komplett . her må dulegge in den stien til bildene som passe for deg .

 

 

for å laste inn bilde ville jeg har brukt en av disse metodene:

 

timage.Picture.LoadFromFile(st);

timage.Picture.Bitmap.LoadFromFile(st);

 

 

husk bare på at når teller er kommet til 5 så må du bestemme om bilden skal begunne på nyt eller om det er her stopp.

 

begynne på nytt:

 

if t > 4 then t := 0;

 

stoppe med bildene her :

if t > 4 then t = 4;

 

hvis du går andre veien så blir det slik

 

if t < 0 then t := 4;

 

if t < 0 then t := 0;

Endret av elg-elg123
Lenke til kommentar

her er et eksempel program:

unit bildetest;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls;

type
 TForm16 = class(TForm)
venstreknapp: TButton;
hoereknapp: TButton;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure venstreknappClick(Sender: TObject);
procedure hoereknappClick(Sender: TObject);
procedure visbilde;
 private
{ Private declarations }
 public
{ Public declarations }
 end;


const maks = 4; // antall -1 ( 0 - antall-1  =antall )

var
 Form16: TForm16;
 t:integer;

implementation

{$R *.dfm}


procedure tform16.visbilde;
var st:string;
begin
case t of
0: st:='M:\mineprosjekt\buttoneditor\bitmaps\1a.bmp';
1: st:='M:\mineprosjekt\buttoneditor\bitmaps\2a.bmp';
2: st:='M:\mineprosjekt\buttoneditor\bitmaps\3a.bmp';
3: st:='M:\mineprosjekt\buttoneditor\bitmaps\4a.bmp';
4: st:='M:\mineprosjekt\buttoneditor\bitmaps\5a.bmp';
end;
image1.Picture.LoadFromFile(st);
 end;


procedure TForm16.venstreknappClick(Sender: TObject);
begin
dec(t);  // redusaerer med 1
if t < 0 then t := maks;
visbilde;
end;

procedure TForm16.hoereknappClick(Sender: TObject);
begin
inc(t); //øker  med 1
if t > maks then t:= 0;
visbilde;
end;

procedure TForm16.FormCreate(Sender: TObject);
begin
t:=0;  // man bør ha en startverdi for å hindre problemer
visbilde;
end;

end.

 

du må bare plaser to knapper og en timage på en form

bilde filene må du selv velge

jeg har også valg en konstant som jeg har valgt å kalle maks.

hvis du ønsker flere elle færre bilder så kan du andre denne verdien, eller

bytte ut "maks" i koden med det antallet du ønsker

Endret av elg-elg123
Lenke til kommentar

Faktisk... etter at dette funka, så prøvde jeg det samme programmet på en annen pc. Og da funket ikke programmet. Men jeg har ikke trykt "Build Project".. Jeg har bare flyttet over alle filene etter å ha kjørt programmet (trykt F9).. Kan dette være årsaken tro?

Lenke til kommentar

de eneste filen som du trenger å flytte er den filen som kompilatoren lager. det er en exe fil f.eks "mitprosjekt.exe".

 

slik dette eksempel programmet er laget foruretter det at filen er på samme sti uansett pc d.v.s filene er lagret på nøyaktig same plass som på den andre pcen.

 

da er det enklere å endre disse stiene og så kompilere på nytt.

 

nærmer forklart:

hvis bilde filen ligger på "c:\minebilder\litavhvert\spesiellebilde\mitbilde1.bmp. så må det også være det samme på den andre maskinen.

 

alternativet er å leke seg lit med og kombinere fler av mulighetene for å bestemme hvordan man finner filene.

her er det altfor mange muligheter som vil ta hele kvelden og vel så de å forklare.

 

ett tips er å lage en liste.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...