[ Nikolavlasotince @ 21.03.2008. 21:13 ] @
E ljudi, hitno mi je, zato molim vas pomognite sto pre,
Znaci imam neke dinamicke komponente tipa TImage. Tj. dvodimenzionalni niz komponenti. kada hocu da pozovem sliku sa HDD-a javlja se greska: Bitmap image is not valid.

A ovako pozivam sliku:

Code:

  Image[1, 1].Picture.LoadFromFile('C:/herc.bmp');   //na C: particiji imam sliku herc.bmp


Pozz
[ reiser @ 21.03.2008. 22:23 ] @
Probaj Image[1, 1].Picture.LoadFromFile('C:\\herc.bmp'); ?
[ Bojan Kopanja @ 21.03.2008. 22:58 ] @
A zasto '\\' zasto ne: Image[1, 1].Picture.LoadFromFile('C:\herc.bmp');? Ovo nije C/C++ pa da mora da escapeuje znak '\'...
[ Nikolavlasotince @ 21.03.2008. 23:10 ] @
ok. sad radi. Thx. A btw kako da ubacim .jpg u Delphiu (u TImage)?
[ reiser @ 22.03.2008. 00:03 ] @
Vidi TJPEG klasu.

@Bojan
Zato sto brza izmena poruke nije prikazivala single backslash, pa sam morao da stavim dupli. Neki bug.
[ Nikolavlasotince @ 22.03.2008. 00:21 ] @
Ajd da ne otvaram teme bespotrebno, ovde cu da pitam jos samo ovo. Znaci imam TNiz[1..6] tipa Byte; tj. Tniz: array [1..6] of Byte;

i sad imam procedure-u u kojoj se unosi niz tj.
procedure check(Niz: array of Byte);
begin
//Ovde mi se javlja problem (u ovoj proceduri)
end;

Npr. Kad pozovem procedure-u check(TNiz);
Niz[1] se razlikuje od TNiz[1] Nije mi jasno zasto?
[ reiser @ 22.03.2008. 00:28 ] @
Ako zelis da u check() proceduri unosis niz i da kasnije sve te izmene koje su nastale u proceduri vaze, moras da stavis var ispred niza, dakle procedure Check(var Niz : Array of Byte)
Drugo, na jednom mestu imas deklarisan niz kao Array[1..6] of Byte dok ti je u proceduri deklarisan kao Array of Byte (dakle nije mu definisan opseg) i index prvog elementa tog niza u proceduri je 0, ne 1.
[ Nikolavlasotince @ 22.03.2008. 00:30 ] @
Ok. Thanks. Sad vidim da je problem bio u tome sto je u ovom nizu prvi element 0 a ne 1. A jel mogu nekako da namestim da i niz u proceduri pocinje od 1?
[ reiser @ 22.03.2008. 00:39 ] @
Napravis type TNiz, pa ga dalje koristis u programu gde ti zatreba:

Code:
type
  TNiz = Array[1..6] of Byte;

procedure Check(var niz : TNiz);
begin
end;

var
  nekiniz : TNiz;

begin
  check(nekiniz);
end.
[ Nikolavlasotince @ 22.03.2008. 00:41 ] @
E hvala puno!
[ savkic @ 22.03.2008. 08:24 ] @
> Ok. Thanks. Sad vidim da je problem bio u tome sto je u ovom nizu prvi element 0 a ne 1.

Bez obzira kako je niz (ili neki drugi prebrojivi tip) definisan opseg uvek možeš saznati pomoću Low i High funkcija. Npr.

Code:

type
  TA = array [5..10] of Char;
  TB = (tbJedan, tbDva, tbTri);
  TC = array['a'..'f'] of Double;

var
  a: TA;
  b: TB;
  c: TC;
  i: Integer;
  f: TB;
  g: Char;
begin
  for i := Low(a) to High(a) do
    ;

  for f := Low(b) to High(b) do
    ;

  for g := Low(c) to High(c) do
    ;
end;
[ Nikolavlasotince @ 22.03.2008. 18:53 ] @
E za low i high funkcije nisam znao.


Pozz