Popsux Skrevet 8. mai 2008 Del Skrevet 8. mai 2008 (endret) Lurer på hvordan man kan lage rullende tekst! (Alla rulleteksten på en film).. Noen som vet? På forhånd takk! Endret 11. mai 2008 av Popsux Lenke til kommentar
affe90 Skrevet 8. mai 2008 Del Skrevet 8. mai 2008 Kan du ikke lage den i flash for så å importere den? Lenke til kommentar
hjahre Skrevet 8. mai 2008 Del Skrevet 8. mai 2008 Hvorfor skal man gjøre noe så vanskelig som å lage det i flash? Selv om man får kantutgjevning så lett i Delphi da Men for å få en rulletekst som på film er det flere ting man kan gjøre. For eksempel man man bruke en memo og ta vekk en og en linje. Eller så kan man skrive en hel algoritme for å flytte og tegne teksten. Jeg tror kanskje det er dette du er ute etter, men jeg veit jo ikke type TAlign = (txtLeft, txtMiddle, txtRight); implentation procedure TxtOut(Str: String; Form: TForm; TxtAlign: TAlign; TxtSize: Integer; TxtColor, BgColor: TColor); var StrList: TStrings; i: Integer; TxtHeight, TxtWidth: Integer; Txt: String; MemBmp: TBitmap; begin StrList: TStrings.Create; while (Pos(';', Str) > 0) or (Pos(';', Str) < Length(Str)) do begin StrList.Add(Copy(Str, 0, Pos(';', Str) -1)); Str := Copy(Str, Pos(';', Str) +1, Length(Str)); end; MemBmp := TBitmap.Create; MemBmp.Height := Form.ClientHeight; Membmp.Width := Form.ClientWidth; with MemBmp.Canvas do begin Font.Size := TxtSize; Font.Color := TxtColor; TxtHeight := TextHeight('Wg'); Brush.Color := BgColor; Pen.Color := BgColor; Rectangle(0, 0, MemBmp.Width, MemBmp.Height); for i := 0 to StrList.Count -1 do begin Txt := StrList.Item[i]; TxtWidth := TextHeight(Txt); case TxtAlign of txtLeft: begin TextOut(i * (TxtHeight + 2), 0, Txt); end; txtMiddle: begin TextOut(i * (TxtHeight + 2), (MemBmp.Width div 2) - (TxtWidth div 2), Txt); end; txtRight: begin TextOut(i * (TxtHeight + 2), MemBmp.Width - TxtWidth, Txt); end; end; end; end; FreeAndNil(StrList); i := Form.Height + 5; repeat Form.Canvas.Brush := BgColor; Form.Canvas.Pen := BgColor; Form.Cancas.Rectangle(0, 0, Form.Width, Form.Height); Form.Canvas.Draw(0, i, MemBmp); Dec(i); until (i <= -MemBmp.Height); FreeAndNil(MemBmp); end; Håper denne koden funker, har ikke testet den siden jeg ikke har Delphi på denne pc-en. Altså er det en totalt utestet kode. Men håper den setter deg på sporet Lenke til kommentar
Popsux Skrevet 9. mai 2008 Forfatter Del Skrevet 9. mai 2008 Skulle ønske jeg kunne så mye kode som deg hjahre. Men fikk ikke denne koden til å virke helt, men nok en gang sendte du meg i riktig retning. Takker Ps. kan ikke flash. Lenke til kommentar
hjahre Skrevet 9. mai 2008 Del Skrevet 9. mai 2008 Det er bare å sette seg ned og øve seg, starte med enkle programmer og utvikle det etterhvert Nå har jeg holdt på med Delphi i en stund, har vel blitt 4-5 år nå. Men Delphi har en utrolig bra hjelpefil, den hjelper mye. Og hvis ikke så har du jo sider som http://delphi.about.com, eller http://www.google.com er jo også en veldig nyttig kilde, hvis du søker etter riktig selvfølgelig Men så lenge du holder på med Delphi, så vil du lære deg kode etterhvert men du kan prøve å sette inn Application.ProcessMessages på slutten av repeat until blokken. altså repeat ... Application.ProcessMessages; until ... Dette kan hjelpe til å få det til å funke riktig Men godt jeg satt deg på riktig spor Lenke til kommentar
Popsux Skrevet 11. mai 2008 Forfatter Del Skrevet 11. mai 2008 Ja, liker noen av about.delphi sidene! Er hjelpsomme! Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå