Tablica z TStringList

Pik
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
0

Witam!

Mam następujący problem:
Muszę stworzyć tablicę w której zaladuję 40 rożnych obrazków (JPG), a potem ten obrazek wyświetlić w TImage.

Wydaje się proste, ale jak tablice stworze jako TPicture to nie moge załadować obrazków do tablicy. Natomiast jeśli ją zadeklaruje jako TBitmap, albo TGraphic to wyskakuje błąd podczas ładowania do TImage.

Co robie nie tak?
Jak zadeklarować tą tablicę?

Proszę o odpowiedź!

P.S. Do SZ.P. Adminów:
Proszę nie usuwać tego posta (piszę to bo mam wrażenie, że ktoś się na mnie uwziął).

DR
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
  • Postów:683
0

A choćby

Kopiuj
Tablica : Array [1..40] of TBitmap;

procedure inicjuj(i:integer);
begin
Tablica[i]:=TBitmap.Create;
end;

procedure rysuj(x,y,i:integer;c:TCanvas);// nie wiem czy to ruszy
begin
 c.draw(x,y,tablica[i]);
end;

:-)

PS. do procedury rysuj nie jestem pewny, jezeli wszystko ruszy to pamietaj o zwolnieniu pamieci :-P

Pik
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
0

Dzięki, ale to nie to.
Ja musze załadować do tablicy obrazek z pliku JPG i nie mogę sobie poradzić... CHLIP ;-( ;-( ;-(

Ale i tak THX za zainteresowanie!

no to zrób sobie tablice TJPGImage

Powiem tyle: HELP!!

DR
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
  • Postów:683
0

no to zrób sobie tablice TJPGImage :-P

Pik
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
0

OK ten problem już rozwiązałem, ale pojawia się następny, tym razem z TStringList:

Mam tablice z TStringList i próbuje dodać do niej jedną linię z RichEdit'a:
<font size="9">(Może i kod nie wygląda dokładnie tak, ale jest coś w tym stylu)</span>

[code]
procedure JakasTam;
var
Tablica : array of TStringList;
begin
SetLength(Tablica, 5);
Tablica[0].Add(RichEdit1.Lines.String[0]);
end;[/code]

Program się kompiluje jest wszystko OK dopoki nie wywolam procedury JakasTam. Wówczas wyskakuje bład: "Access violation at address 00481307 in module 'JakisTam'. Read of address 00000000".

Wie ktoś co jest nie tak?

Proszę o pomoc!

TH
  • Rejestracja:około 23 lata
  • Ostatnio:około 13 lat
0

Bo nie stworzyłeś obiektu TStringList.

Tablica[0]:=TStringList.Create;

Bez tego, odwołujesz się do miejsca w pamięci, które nie istnieje.

Pik
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
0

Niestety to nie to.

Robiąc jak mówisz wyskakuje błąd przy kompilacji:
[Error] Main.pas(366): Incompatible types: 'TStringList' and 'dynamic array' :-( :-(

berl
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 10 lat
0

Prawidłowy kod :

Kopiuj
var
    Tablica : array of TStringList;
begin
    SetLength(Tablica, 1);
    Tablica[0] := TStringList.Create;
    Tablica[0].Add(RichEdit1.Lines[0]);
end;

Błąd wyskoczył, ale zdzieliłem go przez łeb i już działa. ;-)


Słowa kierownika : To, jak wy zdążycie to napisać, to ja mam w szeroko rozumianej du*ie.
http://project1.pl
Pik
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 6 lat
0

SUPER DZIALA!!

Wielkie dzięki Panowie!! [browar]

Zaczynam odzyskiwać wiarę w ten serwis :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.