ďťż
chomiki
[delphi] tagi z plików MP3 zakodowanych w formacie ID3v2
[delphi] problem ze zmianą ikony programu
[delphi] Rysowanie na Canvasie z pliku *bmp
[delphi] procedury przy pokazaniu formy
Samsung GT-B3410 Delphi
[delphi] sprawdzanie poprawności adresu
Algorytm sortowania bąbelkowego w Delphi
[delphi] przylepianie formy
[delphi] konstrukcja wyjątku
[Delphi] Program w zasobniku....
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • therasmus.pev.pl

  • chomiki

    Jak uzyskać efekt przewijania napisu w labelu, gy np. mamy mało powichchni mna jego pokazanie w całości. Please Help.


    Petromechanik naucz się konstruować pytania, podałeś zbyt mało informacji na temat twoich problemów… w temacie wypadało by dać przedrostek
    http://www.gromat.srcom.i...stkach-vt20.htm

    pamiętaj o tym, bo jest to cenna informacja dla chcących pomóc..
    i nie rozumiem troszke stwierdzenia przewijanie w labelu…

    z tego co się orientuje label ma tylko jeden rekord który mieści jedną linijkę
    co najwyżej możesz użyć memo tam masz scrolla
    chodzi mi o dodawanie,odejmowanie znaków typu string i odadawnie do końca(tak jak przewijanie w pasu zadań w winampie)
    http://www.gromat.srcom.i...stkach-vt20.htm


    no mam
    Zrobiłem coś takiego:



    var Org: string;
          Poz: integer; // te dwie zmienne zadeklaruj np z sekcji Private definicji formatki

    //w OnCreate formatki
     Org := 'Przykladowy tekst do przewiniecia';
     Poz := Length(org);

    //na formie połóż timer i w OnTime tego timera. Interval timera ustaw np na 200
    var s: string;
        j,i: integer;

     s := Copy(Org, 1, Poz);
     j := 0;

     while Length(s) < Length(org) do
      begin
       s := ' ' + s;
       Inc(j);
       if j = 1 then Break; // w tym miejscu sterujesz jaki ma byc odstep pomiedzy przewijanym labelem
      end;

     for i := Length(org) downto 1 do
      begin
       if Length(s) = Length(org) then Break;
       s := Org[i] + s;
      end;
     Label1.Caption := s;
     Dec(POz);
     if Poz = 0 then Poz := Length(Org);


    U mnie działa. Może Ci wystarczy takie rozwiązanie.
    u mnie też. dzięki Thor.

    [ Dodano: 2006-04-08, 14:43 ]


    Thor, ja też próbowałem, aby mi pokazywało w pasku zadań(jak w winampie) przez Application.Title. Idzie ale coś nie płynnie


    Ty sposobem, co podałem próbowałeś Ta niepłynność jak wygląda Może interwałem timera trzeba się pobawić
    nie, nie to n9e interwał zobacz sam

    nie, nie to n9e interwał zobacz sam
    zapodaj ten program gdzies to zobaczymy...
    wystarczy wklepać to co Thor podał tylko zmienić z Label1.Caption na Application.Title

    [ Dodano: 2006-07-15, 13:35 ]

    Thor, Twój sposób jest dobry tylko że chodzi do tyłu
    Mój chodzi do przodu


    var
      Form1: TForm1;

    t: Array Of Char;
    ii,i,ile:Integer;
    org: String;

    implementation

    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);
    Begin
     org := 'Przykładowy tekst do przewinięcia ';
     SetLength(t,Length(org));
     ii:=0;
     ile:=Length(org);
     For i:=1 to ile do
      Begin
        t[i]:=org[i];
      End;
    End;

    procedure TForm1.Timer3Timer(Sender: TObject);
    Var
    x:Integer;
    s,ss:String;
    Begin
     s:='';
     ss:='';
              For x:=1 To ile-ii Do s:=s + t[x+ii];
              For x:=1 To ii Do s:=s+t[x];
              For x:=1 To Round(ile/2) Do ss:=ss+ s[x];
      Inc(ii);
      If ii=ile Then ii:=0;
     Label3.Caption := ss;
    End;



    Wymagania;)
    Komponent Label i Timer umieszczony na formie
    szybkość przewijania zmieniamy w Timer w zakładce Interval

    Add /// mały opisik aby można było tym jakoś sterować
    1. Tablica dynamiczna deklaruje się automatycznie o długości znaków zmiennej org czyli ile tam wpiszemy tyle będzie
    2. W tym miejscu:
    For x:=1 to round(ile/2) do ss:=ss+ s[x];
    sterujemy jaki długi ma być label w stosunku do długości znaków czyli jak jest: round(ile/2) to oznacza że będzie wyświetlana tylko połowa labela a reszta będzie "ukryta", Oczywiście możemy zastosować ułamek np:
    round(ile*2/3)
    3. Jeśli chcemy zrobić większy odstęp między końcem a początkiem to wystarczy dodać kilka spacji na koniec tegoż stringa

    PS:
    Reszta myślę że nie trzeba tłumaczyć bo nie będzie dało się tego zmieniać poza tym:
    Label3.Caption := ss; Oznacza że ten tekst będzie w labelu nr:3

    PS2: Prosze pamiętać o tym że tutaj występuje inna numeracja Labela i Timera
    Dzięki, jutro wytestuję.

    PS. 4000 post
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • mandragora32.opx.pl
  • ďťż
    Wszelkie Prawa ZastrzeĹźone! chomiki Design by SZABLONY.maniak.pl.