29. maj 2000 - 11:19Der er
5 kommentarer og 1 løsning
Skifte mellem 2 billeder
Jeg har en form med 4 editbox'e, 4 knapper og 4 image komponenter. Hvert sekund bliver current time skrevet i hver af de 4 editbox'e. Hvis man klikker på en af knapperne, så bli'r tiden ikke længere opdateret i den pågældende editbox (se kode længere nede!). Hver knap har et tag (1-4) som passer til editbox'ene.
Nu vil jeg gerne ha' at når man klikker på kanppen, så skal den også skifte billedet ud i den pågældende image komponent. Der skiftes hele tiden mellem 2 billeder (og kun 2 billeder!). Altså vises billede 1 allerede, så skal den vise billede 2 og omvendt !
Håber i fatter hvad jeg mener ;)
Snowball
type KontrolArray = array[1..4] of boolean;
var Form1: TForm1; Ar : Kontrolarray;
implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject); begin if ar[1] then edit1.Text := TimeToStr(Time); if ar[2] then edit2.Text := TimeToStr(Time); if ar[3] then edit3.Text := TimeToStr(Time); if ar[4] then edit4.Text := TimeToStr(Time); end;
procedure TForm1.FormCreate(Sender: TObject); var i : integer; begin for i := 1 to 4 do ar[i] := true; end;
procedure TForm1.Button1Click(Sender: TObject); begin ar[tbutton(sender).tag]:= not ar[TButton(sender).tag]; end;
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
case tag of 1 : if image1.picture = pic1 then image1.picture.assign(pic2) else image1.picture.assign(pic1); 2 : samme, bare med image2 3 : "" 4 : "" end;
og du kan selvfølgeligt også bruge Image1.picture.loadfromfile(pic1.bmp) og Image1.picture.loadfromfile(pic2.bmp) hvis du ikke har billederne inde på skærmen i forvejen.
En anden mulighed er at oprette 2 images samme sted med hvert sit billede hvis det er faste billeder. F.eks. Image1 og image11 og så skifte mellem image1 og image11 med visible := true/false:
case tag of 1 : if image1.visible then begin image1.visible := false; image11.visible := true; end else begin image1.visible := true; image11.visible := false; end; 2 : samme bare med image2 og image12 o.s.v.
Jeg kom egentlig også i tanke om dit sidste forslag lidt efter jeg hvade stillet spørgsmålet, men du får point'ene alligevel ;)
Så koden kom til at se sådan ud:
case tbutton(sender).tag of 1: begin if image1.visible then begin image1.visible := false; image11.visible := true; end else begin image11.visible := false; image1.Visible := true; end; end;
2: begin if image2.visible then begin image2.visible := false; image22.visible := true; end else begin image22.visible := false; image2.Visible := true; end; end;
3: begin if image3.visible then begin image3.visible := false; image33.visible := true; end else begin image33.visible := false; image3.Visible := true; end; end;
jeg tror faktisk du i din case kan bruge tag alene fordi der altid kun er en sender, og det er i en tbuttonclick event, men den måde du gør det på er også ok.
Nope, der skal stå tbutton(sender).tag for ellers så er tag = 0 hele tiden ;)
Snowball
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.