Köszi; akkor egyelőre majd az alap jMediaPlayer-t és jMidiManager-t próbálom ki. Remélem nem túl bonyolult a használatuk, mert most még a futásidejű dolgok beépítésével is gondban vagyok, pl. egy egyszerű kört nem tudok kirajzoltatni, hogy képeket már ne is említsek. Pedig rendesen lefordítja a programot, létrejön az APK is, meg mutatja a gombokat is, de egyéb nem jelenik meg a Leapdroid emulátor kijelzőjén. Jól deklarálom egyáltalán a vásznat (canvas), amin elvileg a rajzolás történik? Olyan furcsa, hogy nem lehet méretezni a jCanvas-t, és így persze left, top, width meg height tulajdonságai sincsenek. Meg a második gomb is gyanús, mert bár megjelenik, de mindig azonos helyen (bal felső sarok) és azonos méretben.
De itt a kis kódom:
{hint: Pascal files location: ...\AppLAMWProject1\jni }
unit unit1;
{$mode delphi}
interface
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes, SysUtils, AndroidWidget, Laz_And_Controls, And_jni;
type
{ TElion }
TElion = class(jForm)
jButton1,gomb2: jButton;
vaszon: jCanvas;
kepmutato: jImageView;
procedure jButton1Click(Sender: TObject);
procedure gomb2katt(Sender: TObject);
private
{private declarations}
public
{public declarations}
end;
var
Elion: TElion;
implementation
{$R *.lfm}
{ TElion }
procedure TElion.jButton1Click(Sender: TObject);
begin
jButton1.destroy;
kepmutato:=jImageView.Create(self);
kepmutato.init(gApp);
kepmutato.left:=Elion.left;
kepmutato.top:=Elion.top;
kepmutato.width:=Elion.width;
kepmutato.height:=Elion.height;
vaszon:=jCanvas.create(Elion);
vaszon.init(gApp);
vaszon.CreateBitmap(Elion.width,Elion.height,colbrBlue);
vaszon.PaintColor:=colbrWhite;
vaszon.drawcircle(Elion.left+10,Elion.top+10,20);
kepmutato.SetImage(vaszon.GetBitmap());
gomb2:=jButton.create(Elion);
gomb2.parent:=Elion;
gomb2.init(gApp);
gomb2.text:='Egy új gomb';
gomb2.left:=Elion.left+200;
gomb2.top:=Elion.top+200;
gomb2.width:=50;
gomb2.height:=50;
gomb2.enabled:=true;
gomb2.OnClick:=gomb2katt;
end;
procedure TElion.gomb2katt(Sender: TObject);
var i,idex,idey: integer;
begin
randomize;
vaszon.PaintColor:=colbrWhite;
for i:=1 to 10 do
begin
idex:=random(Elion.width)+1;
idey:=random(Elion.height)+1;
vaszon.drawcircle(idex,idey,100);
end;
gomb2.Destroy;
end;
end.
Egyedül a jButton1 van hozzáadva a komponensekhez, az összes többi dolgot futásidőben hozom létre. A "képmutató" biztosan nem működik még, de a köröket illene azért kirajzolnia. Ha legalább tudnám az olyan dolgokat, hogy a Create-ek milyen értéket adnak vissza (pl.
vaszon:=jCanvas.create(Elion);), akkor a ShowMessage-el ki tudnám íratni, hogy létrejött-e már és azzal is okosabb lehetnék.