Monday 7 June 2021

mendeteksi scroll posisi paling bawah kotlin  

  scrollView.viewTreeObserver.addOnScrollChangedListener(object :

            ViewTreeObserver.OnScrollChangedListener {

            override fun onScrollChanged() {

                val view = scrollView.getChildAt(scrollView.getChildCount() - 1) as View

                val diff: Int = view.bottom - (scrollView.getHeight() + scrollView.getScrollY())

                if (diff == 0) {

                    // statement coding

                }

            }

        })


https://www.codegrepper.com/code-examples/kotlin/kotlin+scrollView+scroll+listener

Friday 28 May 2021

mengambil ukuran layar

kotlin :

val displayMetrics = DisplayMetrics()

windowManager.defaultDisplay.getMetrics(displayMetrics)

var widthscreen = displayMetrics.widthPixels

var heightscreen = displayMetrics.heightPixels

Sunday 18 June 2017

buat shape android studio

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <corners
        android:radius="14dp"
        />
    <gradient
        android:angle="45"
        android:centerX="35%"
        android:centerColor="#7995A8"
        android:startColor="#E8E8E8"
        android:endColor="#000000"
        android:type="linear"
        />
    <padding
        android:left="0dp"
        android:top="0dp"
        android:right="0dp"
        android:bottom="0dp"
        />
    <size
        android:width="270dp"
        android:height="60dp"
        />
    <stroke
        android:width="3dp"
        android:color="#878787"
        />
</shape>

sumbar : https://ilmu-detil.blogspot.co.id/2016/04/cara-membuat-button-pada-android-studio.html

Friday 27 June 2014

Memanggil Form lain untuk ditampilkan pada panel Form utama VB 2010 Express

Misalnya saya memiliki dua buah form, form1 adalah form utama dan form2 adalah form anak. Disini saya akan memanggil form anak untuk di tampailkan pada panel yang ada pada form utama, berikut langkahnya: pertama-tama saya membuat new project dengan dua buah form, yaitu form1 dan form2
saya membuat tampilan form1 seperti berikut:

kemudian klik 2x pada button1 dan tambahkan script
Dim f As New Form2()
f.TopLevel = False
Me.Panel1.Controls.Add(f)
f.Show()
dan form2 seperti berikut:

propertis form2 FormBorderStyle=None
berikutnya jalankan dan ketika diklik button1 tampilan akan jadi seperti:

trima kasih

sumbar : http://bytes.com/topic/visual-basic-net/answers/349512-form-inside-panel

Wednesday 6 March 2013

program c mirip jurnal

#include<>
#include<>
#include<>
#include<>
#include<>

struct D{
char ket[20],ket2[20],ref[4],ref2[4];
int tgl;
float nil,nil2;
};
struct D data[30];

float tot=0,tot2=0;
int pil,n=0,thn;
char nama[25],bul[10],ul;

void garispnj(){
printf("=========================================================================\n");}
void gariskcl(){printf("*************************\n");}

void isidata(){
printf("MASUKKAN DATA\n");
printf("NB: Ketrangan max 17 karakter dan ref max 3 karakter\n\n");
printf("Tanggal: ");
scanf("%d",&data[n].tgl);

do{
fflush(stdin);  //menghapus sisia data dalam penampung keyboard
printf("Keterangan: ");
gets(data[n].ket);
}while(strlen(data[n].ket)>17);

do{
printf("ref :");
gets(data[n].ref);
}while(strlen(data[n].ref)>3);

printf("Nominal: ");
scanf("%f",&data[n].nil);
printf("Pada\n");

do{
fflush(stdin);
printf("Keterangan: ");
gets(data[n].ket2);
}while(strlen(data[n].ket2)>17);

do{
printf("ref :");
gets(data[n].ref2);
}while(strlen(data[n].ref2)>3);

printf("Nominal: ");
scanf("%f",&data[n].nil2);
}

void menu(){
gariskcl();
printf("*\t   MENU\t\t*\n");
printf("*   1. MASUKKAN DATA\t*\n");
printf("*   2. BATAL\t\t*\n");
gariskcl();
}

void judul(){
gotoxy(33,1);
printf("JURNAL UMUM\n");
gotoxy(38-strlen(nama)/2,2);
printf("%s\n",nama);
gotoxy(36-strlen(bul)/2,3);
printf("%s %d\n\n",bul,thn); }

void injudul(){
printf("JURNAL UMUM\nNAMA PERUSAHAAN: ");gets(nama);
printf("Bulan: "); gets(bul);
printf("Tahun: "); scanf("%d",&thn);
}

void tampil(){
if(pil==1){
tot=tot+data[n].nil;
tot2=tot2+data[n].nil2; }

if(tot!=0){
judul();
garispnj();
cout<<"|NO\t|TGL\t|KETERANGAN"<<setw(32)<<"|ref|DEBIT\t\t|KREDIT\t\t|\n";
garispnj();

for(int i=0;i<n+1;i++){
if(i!=0){


 if(i<=9)
    {cout<<"|0"<<i<<"\t|"<<data[i].tgl<<"\t|"<< data[i].ket<<setw(20-strlen(data[i].ket));
    cout<<"|"<<data[i].ref<<setw(4-strlen(data[i].ref))<<"|";}
 else
    {cout<<"|"<<i<<"\t|"<<data[i].tgl<<"\t|"<< data[i].ket<<setw(20-strlen(data[i].ket));
    cout<<"|"<<data[i].ref<<setw(4-strlen(data[i].ref))<<"|"; }
 if(data[i].nil<1000)
    {printf("%.2f\t\t|\t-\t|\n",data[i].nil);}
 else
    {printf("%.2f\t|\t-\t|\n",data[i].nil);}
    //baris 2
    cout<<"|\t|\t|  "<<data[i].ket2<<setw(18-strlen(data[i].ket2))<<"|";
    cout<<data[i].ref2<<setw(4-strlen(data[i].ref2))<<"|"<<"\t-\t|";
 if(data[i].nil2<1000)
    {printf("%.2f\t\t|\n",data[i].nil2);}
 else
    {printf("%.2f\t|\n",data[i].nil2);}}
    }

garispnj();

printf("|\t\tJUMLAH\t\t\t|");
if(tot<1000){printf("%.2f\t\t|",tot); }
else {printf("%.2f\t|",tot);}
if(tot2<1000){printf("%.2f\t\t|\n",tot2);}
else{printf("%.2f\t|\n",tot2);}

garispnj(); }
}


main(){
injudul();
clrscr();
do{
tampil();
menu();
fflush(stdin);
printf("pilihan: ");
scanf("%d",&pil);
if(pil==1){n++;}
switch(pil){
case 1:
isidata();
break;
case 2:printf("SELESAI....."); goto x;
default:
printf("\t\t\tpilihan tidak sesuai...!\n\t\tTekan sembarang untuk melanjutkan...");
getch();
break;
        } clrscr();

    }while(pil!=2);
x:
return 0;}

Download 1  2