Recent

Author Topic: exampl DialogDataSet(const ADataSet: TDataSet)  (Read 3314 times)

zeljkoc

  • Full Member
  • ***
  • Posts: 145
    • Zeljko Cvijanovic
exampl DialogDataSet(const ADataSet: TDataSet)
« on: November 30, 2012, 02:34:16 pm »
Exampl show dialog TDataSet

Partner: TFixedFormatDataSet;
------------------------
begin
DialogDataSet(Partner); 
end;
-------------------------------
Code: [Select]
function TForm1.DialogDataSet(const ADataSet: TDataSet): boolean;
var
  javaAndroidAppAlertDialogBuilderClass: JClass = nil;
  javaCharSequence: JClass = nil;
  javaMethod_AlertDialogBuilder_new,
    javaMethod_AlertDialogBuilder_show: JMethodID;
  JavaMethod_LCLDoPrepareSelectItemDialog: JMethodID;
  javaAlertDialog: JObject;
  javaObjectArray: JObjectArray;
  // array for the parameters
  lParams: array[0..2] of JValue;
  lJavaString: JString;
  i,j: Integer;
  FieldText: String;
begin
  // First get the classes
  javaAndroidAppAlertDialogBuilderClass := javaEnvRef^^.FindClass(javaEnvRef, 'android/app/AlertDialog$Builder');
  javaCharSequence := javaEnvRef^^.FindClass(javaEnvRef, 'java/lang/String');//'java/lang/CharSequence');

  // final AlertDialog.Builder ad = new AlertDialog.Builder(this);
  javaMethod_AlertDialogBuilder_new := javaEnvRef^^.GetMethodID(javaEnvRef, javaAndroidAppAlertDialogBuilderClass, '<init>', '(Landroid/content/Context;)V');
  lParams[0].l := javaActivityObject;
  javaAlertDialog := javaEnvRef^^.NewObjectA(javaEnvRef, javaAndroidAppAlertDialogBuilderClass, javaMethod_AlertDialogBuilder_new, @lParams[0]);

  // Very strangely in the emulator it crashes if we don't refresh the Activity class here
  javaActivityClass := javaEnvRef^^.FindClass(javaEnvRef, PChar(CDWidgetset.ActivityClassName));

  JavaMethod_LCLDoPrepareSelectItemDialog := javaEnvRef^^.GetMethodID(javaEnvRef, javaActivityClass, 'LCLDoPrepareSelectItemDialog',
    '([Ljava/lang/CharSequence;ILandroid/app/AlertDialog$Builder;)V');

  javaObjectArray := javaEnvRef^^.NewObjectArray(javaEnvRef, ADataSet.RecordCount, javaCharSequence, javaEnvRef^^.NewStringUTF(javaEnvRef, ''));
  lParams[0].l := javaObjectArray;

  ADataSet.First; j:=0;
  While not ADataSet.Eof do
  begin
    FieldText := '';
    For i:=0 to ADataSet.Fields.Count -1 do
      FieldText := FieldText +#10#13+ADataSet.Fields[i].AsString;

    lJavaString :=javaEnvRef^^.NewStringUTF(javaEnvRef, PChar(FieldText));
    javaEnvRef^^.SetObjectArrayElement(javaEnvRef, javaObjectArray, j, lJavaString);
    ADataSet.Next;
    inc(j);
  end;

  lParams[1].i := -1;
  lParams[2].l := javaAlertDialog;
  javaEnvRef^^.CallVoidMethodA(javaEnvRef, javaActivityObject, JavaMethod_LCLDoPrepareSelectItemDialog, @lParams[0]);

  // ad.show();
  javaMethod_AlertDialogBuilder_show := javaEnvRef^^.GetMethodID(javaEnvRef, javaAndroidAppAlertDialogBuilderClass, 'show', '()Landroid/app/AlertDialog;');

  javaEnvRef^^.CallObjectMethod(javaEnvRef, javaAlertDialog, javaMethod_AlertDialogBuilder_show);
end;       

Can it make a  instead DialogDataSet TListView

zeljkoc

  • Full Member
  • ***
  • Posts: 145
    • Zeljko Cvijanovic
Re: exampl DialogDataSet(const ADataSet: TDataSet)
« Reply #1 on: December 02, 2012, 07:01:08 pm »
how to read selected, data

 

TinyPortal © 2005-2018