Programlama yapalım ve Öğrenelim. - Delphi Eğitim208
  Ana Sayfa
  .NET Eğitim Notları
  Visual C# .NET Örnek Kodları
  VisualBasic.NET Örnek Kodları
  J# Örnekleri
  ASP.NET Örnek Kodları
  Delphi Eğitim
  => Delphi Eğitim1
  => Delphi Eğitim2
  => Delphi Eğitim3
  => Delphi Eğitim4
  => Delphi Eğitim5
  => Delphi Eğitim6
  => Delphi Eğitim7
  => Delphi Eğitim8
  => Delphi Eğitim9
  => Delphi Eğitim10
  => Delphi Eğitim11
  => Delphi Eğitim13
  => Delphi Eğitim14
  => Delphi Eğitim15
  => Delphi Eğitim16
  => Delphi Eğitim17
  => Delphi Eğitim18
  => Delphi Eğitim19
  => Delphi Eğitim20
  => Delphi Eğitim21
  => Delphi Eğitim22
  => Delphi Eğitim23
  => Delphi Eğitim24
  => Delphi Eğitim25
  => Delphi Eğitim26
  => Delphi Eğitim27
  => Delphi Eğitim28
  => Delphi Eğitim29
  => Delphi Eğitim30
  => Delphi Eğtim31
  => Delphi Eğitim32
  => Delphi Eğitim33
  => Delphi Eğitim34
  => Delphi Eğitim35
  => Delphi Eğitim36
  => Delphi Eğitim37
  => Delphi Eğitim38
  => Delphi Eğitim39
  => Delphi Eğitim40
  => Delphi Eğitim41
  => Delphi Eğitim42
  => Delphi Eğitim43
  => Delphi Eğitim44
  => Delphi Eğitim45
  => Delphi Eğitim46
  => Delphi Eğitim47
  => Delphi Eğitim48
  => Delphi Eğitim49
  => Delphi Eğitim50
  => Delphi Eğitim51
  => Delphi Eğitim52
  => Delphi Eğitim53
  => Delphi Eğitim54
  => Delphi Eğitim55
  => Delphi Eğitim56
  => Delphi Eğitim57
  => Delphi Eğitim58
  => Delphi Eğitim59
  => Delphi Eğitim60
  => Delphi Eğitim61
  => Delphi Eğitim62
  => Delphi Eğitim63
  => Delphi Eğitim64
  => Delphi Eğitim65
  => Delphi Eğitim66
  => Delphi Eğitim67
  => Delphi Eğitim68
  => Delphi Eğitim69
  => Delphi Eğitim70
  => Delphi Eğitim71
  => Delphi Eğitim72
  => Delphi Eğitim73
  => Delphi Eğitim74
  => Delphi Eğitim75
  => Delphi Eğitim76
  => Delphi Eğitim77
  => Delphi Eğitim78
  => Delphi Eğitim79
  => Delphi Eğitim80
  => Delphi Eğitim81
  => Delphi Eğitim82
  => Delphi Eğitim83
  => Delphi Eğitim84
  => Delphi Eğitim85
  => Delphi Eğitim86
  => Delphi Eğitim87
  => Delphi Eğitim88
  => Delphi Eğitim89
  => Delphi Eğitim90
  => Delphi Eğitim91
  => Delphi Eğitim92
  => Delphi Eğitim93
  => Delphi Eğitim94
  => Delphi Eğitim95
  => Delphi Eğitim96
  => Delphi Eğitim97
  => Delphi Eğitim98
  => Delphi Eğitim99
  => Delphi Eğitim100
  => Delphi Eğitim101
  => Delphi Eğitim102
  => Delphi Eğitim103
  => Delphi Eğitim104
  => Delphi Eğitim105
  => Delphi Eğitim106
  => Delphi Eğitim107
  => Delphi Eğitim108
  => Delphi Eğitim109
  => Delphi Eğitim110
  => Delphi Eğitim111
  => Delphi Eğitim112
  => Delphi Eğitim113
  => Delphi Eğitim114
  => Delphi Eğitim115
  => Delphi Eğitim116
  => Delphi Eğitim117
  => Delphi Eğitim118
  => Delphi Eğitim119
  => Delphi Eğitim120
  => Delphi Eğitim121
  => Delphi Eğitim122
  => Delphi Eğitim123
  => Delphi Eğitim124
  => Delphi Eğitim125
  => Delphi Eğitim126
  => Delphi Eğitim127
  => Delphi Eğitim128
  => Delphi Eğitim129
  => Delphi Eğitim130
  => Delphi Eğitim131
  => Delphi Eğitim132
  => Delphi Eğitim133
  => Delphi Eğitim134
  => Delphi Eğitim135
  => Delphi Eğitim136
  => Delphi Eğitim137
  => Delphi Eğitim138
  => Delphi Eğitim139
  => Delphi Eğitim140
  => Delphi Eğitim141
  => Delphi Eğitim142
  => Delphi Eğitim143
  => Delphi Eğitim144
  => Delphi Eğitim145
  => Delphi Eğitim146
  => Delphi eğitim147
  => Delphi Eğitim148
  => Delphi Eğitim149
  => Delphi Eğitim150
  => Delphi Eğitim151
  => Delphi Eğitim152
  => Delphi Eğitim153
  => Delphi Eğitim154
  => Delphi Eğitim155
  => Delphi Eğitim156
  => Delphi Eğitim157
  => Delphi Eğitim158
  => Delphi Eğitim159
  => Delphi Eğitim160
  => Delphi Eğitim161
  => Delphi Eğitim162
  => Delphi Eğitim164
  => Delphi Eğitim165
  => Delphi Eğitim166
  => Delphi Eğitim167
  => Delphi Eğitim168
  => Delphi Eğitim169
  => Delphi Eğitim170
  => Delphi Eğitim171
  => Delphi Eğitim172
  => Delphi Eğitim173
  => Delphi Eğitim174
  => Delphi Eğitim175
  => Delphi Eğitim176
  => Delphi Eğitim177
  => Delphi Eğitim178
  => Delphi Eğitim179
  => Delphi Eğitim180
  => Delphi Eğitim181
  => Delphi Eğitim182
  => Delphi Eğitim183
  => Delphi Eğitim184
  => Delphi Eğitim185
  => Delphi Eğitim186
  => Delphi Eğitim187
  => Delphi Eğitim188
  => Delphi Eğitim189
  => Delphi Eğitim190
  => Delphi Eğitim191
  => Delphi Eğitim192
  => Delphi Eğitim193
  => Delphi Eğitim194
  => Delphi Eğitim195
  => Delphi Eğitim196
  => Delphi Eğitim197
  => Delphi Eğitim198
  => Delphi Eğitim199
  => Delphi Eğitim200
  => Delphi Eğitim201
  => Delphi Eğitim202
  => Delphi Eğitim203
  => Delphi Eğitim204
  => Delphi Eğitim205
  => Delphi Eğitim206
  => Delphi Eğitim207
  => Delphi Eğitim208
  => Delphi Eğitim209
  => Delphi Eğitim210
  => Delphi Eğitim211
  => Delphi Eğitim212
  => Delphi Eğitim213
  => Delphi Eğitim214
  => Delphi Eğitim215
  => Delphi Eğitim216
  => Delphi Eğitim217
  => Delphi Eğitim218
  => Delphi Eğitim219
  => Delphi Eğitim220
  => Delphi Eğitim221
  => Delphi Eğitim222
  => Delphi Eğitim223
  => Delphi Eğitim224
  => Delphi Eğitim225
  => Delphi Eğitim226
  => Delphi Eğitim227
  => Delphi Eğitim228
  => Delphi Eğitim229
  => Delphi Eğitim230
  => Delphi Eğitim231
  => Delphi Eğitim232
  => Delphi Eğitim233
  => Delphi Eğitim234
  => Delphi Eğitim235
  => Delphi Eğitim236
  => Delphi Eğitim237
  => Delphi Eğitim238
  => Delphi Eğitim239
  => Delphi Eğitim240
  => Delphi Eğitim241
  => Delphi Eğitim242
  İletişim

YTL - Yeni Lira destekli sayı yazıçevir

 

 

Koksalal Arkdaşımızın yamış olduğu kodda eğer kuruş yoksa yani 100,00 YTL ise yazının sonuna "Yeni Türk Lirası" yazmıyordu.

 

 

{ Rakamı yazıya çevirir }

const

  BIRLER: array[0..9] of string=('', 'Bir ', 'İki ', 'Üç ', 'Dört ', 'Beş ', 'Altı ',

          'Yedi ', 'Sekiz ', 'Dokuz ');

  ONLAR : array[0..9] of string=('', 'On ', 'Yirmi ', 'Otuz ', 'Kırk ', 'Elli ', 'Altmış ',

          'Yetmiş ', 'Seksen ', 'Doksan ');

  DIGER : array[0..5] of string=('', 'Bin ', 'Milyon ', 'Milyar ', 'Trilyon ', 'Katrilyon ');

 

function SmallNum(N: Integer): string;

var

  S: string[3];

begin

  Result := '';

  S := IntToStr(N);

  if (Length(S)=1) then

    S := '00' + S

  else if (Length(S)=2) then

    S := '0' + S;

  if S[1]<>'0' then

    if S[1]<>'1' then

      Result := BIRLER[StrToInt(S[1])] + 'Yüz '

    else

      Result := 'Yüz ';

  Result := Result + ONLAR[StrToInt(S[2])];

  Result := Result + BIRLER[StrToInt(S[3])];

end;

 

function RakamdanYaziyaYTL(Num: Extended): string; export;stdcall;

var

  kurus,i, j, n, Nm: Integer;

  S, Sn: string;

begin

  S := FormatFloat('0', Num);

  Sn := '';

  if Num = 0 then

    Sn := 'Sıfır'

  else if Length(S) < 4 then

    Sn := SmallNum(trunc(Num))

  else

  begin

    I := 1;

    J := Length(S) mod 3;

    if J=0 then

    begin

      J := 3;

      N := Length(S) div 3 - 1;

    end

    else

      N := Length(S) div 3;

    while i<Length(S) do

    begin

      Nm := StrToInt(Copy(S, I, J));

      if (Nm=1) and (N=1) then

      begin

        Nm := 0;

        Sn := Sn + SmallNum(Nm) + Diger[N];

      end;

      if Nm<>0 then

        Sn := Sn + SmallNum(Nm) + Diger[N];

      I := I + J;

      J := 3;

      N := N - 1;

    end;

  end;

  Result := Sn;

  Kurus:=Round(Frac(Num)*100);

 

  if (kurus > 0) then

  begin

       if (Result <> '') then

          Result:=  Result +'Yeni Türk Lirası ' + SmallNum(Kurus) + 'Kuruş';

  end else Result:=  Result +'Yeni Türk Lirası ';

end;

 

(*

-----------------------------------------------------------------------

Şükrü Kansız

 

GEBİTEK A.Ş. (Gelişmiş Bilişim Teknolojileri Tic. A.Ş.)

Bilgisayar Programcısı - Proje Koordinatörü

sukruk@gebitek.com / www.gebitek.com

Tel: +90(212) 225 84 77 Fax: +90(212) 225 84 76

-----------------------------------------------------------------------

*)

 

Delphi - .....................................

 

YTL - Yeni Lira destekli sayı yazıçevir - Düzetildi

********************************************************

********************************************************

*** 'ARKADAŞLAR LÜTFEN KODBANK"TAN YARDIM İSTEMEYİN' ***

************* 'FORUMLARDAN YARDIM İSTEYİN' *************

********************************************************

********************************************************

 

 

Koksalal Arkdaşımızın yamış olduğu kodda eğer kuruş yoksa yani 100,00 YTL ise yazının sonuna "Yeni Türk Lirası" yazmıyordu.

 

 

{ Rakamı yazıya çevirir }

const

  BIRLER: array[0..9] of string=('', 'Bir ', 'İki ', 'Üç ', 'Dört ', 'Beş ', 'Altı ',

          'Yedi ', 'Sekiz ', 'Dokuz ');

  ONLAR : array[0..9] of string=('', 'On ', 'Yirmi ', 'Otuz ', 'Kırk ', 'Elli ', 'Altmış ',

          'Yetmiş ', 'Seksen ', 'Doksan ');

  DIGER : array[0..5] of string=('', 'Bin ', 'Milyon ', 'Milyar ', 'Trilyon ', 'Katrilyon ');

 

function SmallNum(N: Integer): string;

var

  S: string[3];

begin

  Result := '';

  S := IntToStr(N);

  if (Length(S)=1) then

    S := '00' + S

  else if (Length(S)=2) then

    S := '0' + S;

  if S[1]<>'0' then

    if S[1]<>'1' then

      Result := BIRLER[StrToInt(S[1])] + 'Yüz '

    else

      Result := 'Yüz ';

  Result := Result + ONLAR[StrToInt(S[2])];

  Result := Result + BIRLER[StrToInt(S[3])];

end;

 

function RakamdanYaziyaYTL(Num: Extended): string; export;stdcall;

var

  kurus,i, j, n, Nm: Integer;

  S, Sn: string;

begin

  S := FormatFloat('0', Num);

  Sn := '';

  if Num = 0 then

    Sn := 'Sıfır'

  else if Length(S) < 4 then

    Sn := SmallNum(trunc(Num))

  else

  begin

    I := 1;

    J := Length(S) mod 3;

    if J=0 then

    begin

      J := 3;

      N := Length(S) div 3 - 1;

    end

    else

      N := Length(S) div 3;

    while i<Length(S) do

    begin

      Nm := StrToInt(Copy(S, I, J));

      if (Nm=1) and (N=1) then

      begin

        Nm := 0;

        Sn := Sn + SmallNum(Nm) + Diger[N];

      end;

      if Nm<>0 then

        Sn := Sn + SmallNum(Nm) + Diger[N];

      I := I + J;

      J := 3;

      N := N - 1;

    end;

  end;

  Result := Sn;

  Kurus:=Round(Frac(Num)*100);

 

  if (kurus > 0) then

  begin

       if (Result <> '') then

          Result:=  Result +'Yeni Türk Lirası ' + SmallNum(Kurus) + 'Kuruş';

  end else Result:=  Result +'Yeni Türk Lirası ';

end;

 

(*

-----------------------------------------------------------------------

Şükrü Kansız

 

GEBİTEK A.Ş. (Gelişmiş Bilişim Teknolojileri Tic. A.Ş.)

Bilgisayar Programcısı - Proje Koordinatörü

sukruk@gebitek.com / www.gebitek.com

Tel: +90(212) 225 84 77 Fax: +90(212) 225 84 76

-----------------------------------------------------------------------

*)

 

Delphi - .....................................

 

YTL mi Kuruşmu?

********************************************************

********************************************************

*** 'ARKADAŞLAR LÜTFEN KODBANK"TAN YARDIM İSTEMEYİN' ***

************* 'FORUMLARDAN YARDIM İSTEYİN' *************

********************************************************

********************************************************

 

Programlarımızda kullandığımız bir function. Kısa ve basit :)

 

function YTLKurus(E:Extended):String;

begin

     if E < 1 then

        Result := FloatToStr(Round(Frac(E)*100)) + ' YKrş'

     else

        Result := FormatFloat('#,##0.00', E) + ' YTL';

end;

 

 

 

Bu Fonksiyonda Bonus :)

 

function TLtoYTL(E:Extended):Extended;

begin

     Result := E/1000000;

end;

 

 

(*

-----------------------------------------------------------------------

Şükrü Kansız

 

GEBİTEK (Gelişmiş Bilişim Teknolojileri)

Bilgisayar Programcısı - Proje Koordinatörü

sukruk@gebitek.com / www.gebitek.com

Tel: +90(212) 225 84 77 Fax: +90(212) 225 84 76

-----------------------------------------------------------------------

*)

 

Delphi - .....................................

 

YTL mi Kuruşmu?

********************************************************

********************************************************

*** 'ARKADAŞLAR LÜTFEN KODBANK"TAN YARDIM İSTEMEYİN' ***

************* 'FORUMLARDAN YARDIM İSTEYİN' *************

********************************************************

********************************************************

 

Programlarımızda kullandığımız bir function. Kısa ve basit :)

 

function YTLKurus(E:Extended):String;

begin

     if E < 1 then

        Result := FloatToStr(Round(Frac(E)*100)) + ' YKrş'

     else

        Result := FormatFloat('#,##0.00', E) + ' YTL';

end;

 

 

 

Bu Fonksiyonda Bonus :)

 

function TLtoYTL(E:Extended):Extended;

begin

     Result := E/1000000;

end;

 

 

(*

-----------------------------------------------------------------------

Şükrü Kansız

 

GEBİTEK (Gelişmiş Bilişim Teknolojileri)

Bilgisayar Programcısı - Proje Koordinatörü

sukruk@gebitek.com / www.gebitek.com

Tel: +90(212) 225 84 77 Fax: +90(212) 225 84 76

-----------------------------------------------------------------------

*)

 

Delphi - .....................................

 

TDT bulma (Tahmini Doğum Tarihi)

var SAT,TDT:TDate;

begin

TDT:=SAT+280;

end;

 

Delphi - .....................................

 

TDT bulma (Tahmini Doğum Tarihi)

var SAT,TDT:TDate;

begin

TDT:=SAT+280;

end;

 

Delphi - .....................................

 

Tarihten bir oncesini alma (kazinmaya gerek yok)

var dun,bugun:TDate;

begin

dun:=bugun-1;

end;

 

Delphi - .....................................

 

Tarihten bir oncesini alma (kazinmaya gerek yok)

var dun,bugun:TDate;

begin

dun:=bugun-1;

end;

 

Delphi - .....................................

 

YTL yi YAZIYLA YAZ

FUNCTION tform1.YAZIYLA(SAYI:REAL):STRING;

FUNCTION YAZI(SAYI:STRING):STRING;

  const

     BIRLER:ARRAY[0..9] OF STRING[7]=('',' Bir',' İki',' Üç',' Dört',' Beş',' Altı',' Yedi',' Sekiz',' Dokuz');

     ONLAR:ARRAY[0..9] OF STRING[7]=('',' On',' Yirmi',' Otuz',' Kırk',' Elli',' Atmış',' Yetmiş',' Seksen',' Doksan');

     KAT:ARRAY[1..7] OF STRING[7]=(' Milyar','','',' Milyon','','',' Bin');

VAR

  A:REAL;YAZ,S:STRING[90];AL:STRING;

  J,X,Y,Z,I:INTEGER;

begin

  A:=0;S:='';YAZ:='';AL:='';X:=0;Y:=0;Z:=0;J:=0;I:=0;

IF SAYI<>'' THEN A:=STRTOFLOAT(SAYI);

   A:=INT(A);STR(A:1:0,S);

   S:=COPY('000000000000000000',1,12-LENGTH(S))+S;

   I:=0;REPEAT

   IF I=0 THEN I:=1 ELSE I:=I+3;

   YAZ:=COPY(S,I,3);

   VAL(COPY(YAZ,1,1),X,J);

   VAL(COPY(YAZ,2,1),Y,J);

   VAL(COPY(YAZ,3,1),Z,J);

   IF (I=7) AND (YAZ='001') THEN BEGIN

      X:=0;Y:=0;Z:=0;END;

    IF X<>1 THEN AL:=AL+BIRLER[X];

    IF X<>0 THEN AL:=AL+'Yüz';

    AL:=AL+ONLAR[Y]+BIRLER[Z];

    IF (YAZ<>'000') AND(I<10) THEN AL:=AL+KAT[I];

    UNTIL I>=9;

    YAZI:=AL;

end;

VAR YTL,YKR,YAZITOPLA,SS:STRING;

VR:BYTE;

 

BEGIN

SAYI:=ROUNDTO(SAYI,-2);YAZITOPLA:='';

SS:=FLOATTOSTR(SAYI);VR:=POS(',',SS);

//showmessage(SS);

 

IF VR<>0 THEN YTL:=COPY(SS,1,VR-1)

ELSE IF VR=0 THEN YTL:=SS;

IF VR<>0 THEN BEGIN YKR:=COPY(SS,VR+1,LENGTH(SS)-VR);

   YKR:=YKR+COPY('00',1,2-LENGTH(YKR));END;

 

//showmessage('ytl:'+YTL+'     YKR:'+YKR);

IF YTL<>'0' THEN YAZITOPLA:=YAZITOPLA+YAZI(YTL)+' YTL ';

IF YKR<>'' THEN YAZITOPLA:=YAZITOPLA+YAZI(YKR)+' YKR ';

YAZIYLA:=YAZITOPLA;

END;

 

/////KULLANIMI

 

procedure TForm1.Button2Click(Sender: TObject);

begin

EDIT3.Text:=YAZIYLA(STRTOFLOAT(EDIT4.TEXT));

end;

 

Delphi - .....................................

 

YTL yi YAZIYLA YAZ

FUNCTION tform1.YAZIYLA(SAYI:REAL):STRING;

FUNCTION YAZI(SAYI:STRING):STRING;

  const

     BIRLER:ARRAY[0..9] OF STRING[7]=('',' Bir',' İki',' Üç',' Dört',' Beş',' Altı',' Yedi',' Sekiz',' Dokuz');

     ONLAR:ARRAY[0..9] OF STRING[7]=('',' On',' Yirmi',' Otuz',' Kırk',' Elli',' Atmış',' Yetmiş',' Seksen',' Doksan');

     KAT:ARRAY[1..7] OF STRING[7]=(' Milyar','','',' Milyon','','',' Bin');

VAR

  A:REAL;YAZ,S:STRING[90];AL:STRING;

  J,X,Y,Z,I:INTEGER;

begin

  A:=0;S:='';YAZ:='';AL:='';X:=0;Y:=0;Z:=0;J:=0;I:=0;

IF SAYI<>'' THEN A:=STRTOFLOAT(SAYI);

   A:=INT(A);STR(A:1:0,S);

   S:=COPY('000000000000000000',1,12-LENGTH(S))+S;

   I:=0;REPEAT

   IF I=0 THEN I:=1 ELSE I:=I+3;

   YAZ:=COPY(S,I,3);

   VAL(COPY(YAZ,1,1),X,J);

   VAL(COPY(YAZ,2,1),Y,J);

   VAL(COPY(YAZ,3,1),Z,J);

   IF (I=7) AND (YAZ='001') THEN BEGIN

      X:=0;Y:=0;Z:=0;END;

    IF X<>1 THEN AL:=AL+BIRLER[X];

    IF X<>0 THEN AL:=AL+'Yüz';

    AL:=AL+ONLAR[Y]+BIRLER[Z];

    IF (YAZ<>'000') AND(I<10) THEN AL:=AL+KAT[I];

    UNTIL I>=9;

    YAZI:=AL;

end;

VAR YTL,YKR,YAZITOPLA,SS:STRING;

VR:BYTE;

 

BEGIN

SAYI:=ROUNDTO(SAYI,-2);YAZITOPLA:='';

SS:=FLOATTOSTR(SAYI);VR:=POS(',',SS);

//showmessage(SS);

 

IF VR<>0 THEN YTL:=COPY(SS,1,VR-1)

ELSE IF VR=0 THEN YTL:=SS;

IF VR<>0 THEN BEGIN YKR:=COPY(SS,VR+1,LENGTH(SS)-VR);

   YKR:=YKR+COPY('00',1,2-LENGTH(YKR));END;

 

//showmessage('ytl:'+YTL+'     YKR:'+YKR);

IF YTL<>'0' THEN YAZITOPLA:=YAZITOPLA+YAZI(YTL)+' YTL ';

IF YKR<>'' THEN YAZITOPLA:=YAZITOPLA+YAZI(YKR)+' YKR ';

YAZIYLA:=YAZITOPLA;

END;

 

/////KULLANIMI

 

procedure TForm1.Button2Click(Sender: TObject);

begin

EDIT3.Text:=YAZIYLA(STRTOFLOAT(EDIT4.TEXT));

end;

 

Delphi - .....................................

 

IBUpdateSQL yardım

arkadaşlar bu IBUpdateSQL componenti hakkında bir fikri olan varsa insanlık namına söylesin yoksa ben

makineyi kıracam.....

 

Mail gacal_59@hotmail.com

 

Delphi - .....................................

 

IBUpdateSQL yardım

arkadaşlar bu IBUpdateSQL componenti hakkında bir fikri olan varsa insanlık namına söylesin yoksa ben

makineyi kıracam.....

 

Mail gacal_59@hotmail.com

 

Delphi - .....................................

 

IBUpdateSQL yardım

arkadaşlar bu IBUpdateSQL componenti hakkında bir fikri olan varsa insanlık namına söylesin yoksa ben

makineyi kıracam.....

 

Delphi - .....................................

 

IBUpdateSQL yardım

arkadaşlar bu IBUpdateSQL componenti hakkında bir fikri olan varsa insanlık namına söylesin yoksa ben

makineyi kıracam.....

 

Delphi - .....................................

 

Rakam Yapan Function

//Aşağıdaki Kodlar bir string içerisindeki sayı olmayan herşeyi silip kalan sayıları

//veriyor. Lazım olur mu demeyin hiç ummadığınız bir anda lazım olabiliyor.

//Ayrıca function içinde bulunan ==> not <== (Dikkat sadece not silinecek) yazısını

//silerseniz durum tersine döner. Yani string içerisindeki sayı olan herşeyi silip

//kalan harfleri verir. Aşağıda 4 tane function var;

//(Aşağıdaki Açıklamalar bilmeyen veya yeni arkadaşlaradır...)

//Birincisi sonucu String olarak verir.(Metin olarak...)

//İkincisi sonucu Integer olarak verir.(Sayı olarak -2147483648..217483647 arası...)

//Üçüncüsü sonucu Int64 olarak verir.(Sayı olarak -9223372036854775808..9223372036854775808 arası...)

//Dördüncüsü sonucu Extended olarak verir.(Para değeri olarak...)

 

Function RakamYapString(Metin: String): String;

var

  I: Integer;

begin

  For I := Length(Metin) downto 1 do

  begin

    if not (Metin[I] in ['0'..'9']) then

      Delete(Metin, I, 1);

  end;

    Result := Metin;

end;

 

//----------------------------------------------------------------------------------//

 

Function RakamYapInteger(Metin: String): Integer;

var

  I: Integer;

begin

  For I := Length(Metin) downto 1 do

  begin

    if not (Metin[I] in ['0'..'9']) then

      Delete(Metin, I, 1);

  end;

  if Metin = EmptyStr then

  Result := 0

  else

  Result := StrToInt(Metin);

end;

 

//----------------------------------------------------------------------------------//

 

Function RakamYapInt64(Metin: String): Int64;

var

  I: Integer;

begin

  For I := Length(Metin) downto 1 do

  begin

    if not (Metin[I] in ['0'..'9']) then

      Delete(Metin, I, 1);

  end;

  if Metin = EmptyStr then

  Result := 0

  else

  Result := StrToInt64(Metin);

end;

 

//----------------------------------------------------------------------------------//

 

Function RakamYapFloat(Metin: String): Extended;

var

  I: Integer;

begin

  For I := Length(Metin) downto 1 do

  begin

    if not (Metin[I] in ['0'..'9']) then

      Delete(Metin, I, 1);

  end;

  if Metin = EmptyStr then

  Result := 0

  else

  Result := StrToFloat(Metin);

end;

 

// Kullanımı (Mesela Bir Edit'in Onchange Olayında)

procedure TForm1.Edit1Change(Sender: TObject);

begin

Label1.Caption := RakamYapString(Edit1.Text);

end;

//Edit1.Text := 'dasd12sdsd56438sd8sd52'; olduğunu kabul edersek Sonuç '1256438852' olacaktır.

 

// İlginç, farklı ve kullanışlı kodları olanlar bad_badboy_boy@hotmail.com 'a

// mail atabilir. Teşekkürler.

 

Delphi - .....................................

 

Rakam Yapan Function

//Aşağıdaki Kodlar bir string içerisindeki sayı olmayan herşeyi silip kalan sayıları

//veriyor. Lazım olur mu demeyin hiç ummadığınız bir anda lazım olabiliyor.

//Ayrıca function içinde bulunan ==> not <== (Dikkat sadece not silinecek) yazısını

//silerseniz durum tersine döner. Yani string içerisindeki sayı olan herşeyi silip

//kalan harfleri verir. Aşağıda 4 tane function var;

//(Aşağıdaki Açıklamalar bilmeyen veya yeni arkadaşlaradır...)

//Birincisi sonucu String olarak verir.(Metin olarak...)

//İkincisi sonucu Integer olarak verir.(Sayı olarak -2147483648..217483647 arası...)

//Üçüncüsü sonucu Int64 olarak verir.(Sayı olarak -9223372036854775808..9223372036854775808 arası...)

//Dördüncüsü sonucu Extended olarak verir.(Para değeri olarak...)

 

Function RakamYapString(Metin: String): String;

var

  I: Integer;

begin

  For I := Length(Metin) downto 1 do

  begin

    if not (Metin[I] in ['0'..'9']) then

      Delete(Metin, I, 1);

  end;

    Result := Metin;

end;

 

//----------------------------------------------------------------------------------//

 

Function RakamYapInteger(Metin: String): Integer;

var

  I: Integer;

begin

  For I := Length(Metin) downto 1 do

  begin

    if not (Metin[I] in ['0'..'9']) then

      Delete(Metin, I, 1);

  end;

  if Metin = EmptyStr then

  Result := 0

  else

  Result := StrToInt(Metin);

end;

 

//----------------------------------------------------------------------------------//

 

Function RakamYapInt64(Metin: String): Int64;

var

  I: Integer;

begin

  For I := Length(Metin) downto 1 do

  begin

    if not (Metin[I] in ['0'..'9']) then

      Delete(Metin, I, 1);

  end;

  if Metin = EmptyStr then

  Result := 0

  else

  Result := StrToInt64(Metin);

end;

 

//----------------------------------------------------------------------------------//

 

Function RakamYapFloat(Metin: String): Extended;

var

  I: Integer;

begin

  For I := Length(Metin) downto 1 do

  begin

    if not (Metin[I] in ['0'..'9']) then

      Delete(Metin, I, 1);

  end;

  if Metin = EmptyStr then

  Result := 0

  else

  Result := StrToFloat(Metin);

end;

 

// Kullanımı (Mesela Bir Edit'in Onchange Olayında)

procedure TForm1.Edit1Change(Sender: TObject);

begin

Label1.Caption := RakamYapString(Edit1.Text);

end;

//Edit1.Text := 'dasd12sdsd56438sd8sd52'; olduğunu kabul edersek Sonuç '1256438852' olacaktır.

 

// İlginç, farklı ve kullanışlı kodları olanlar bad_badboy_boy@hotmail.com 'a

// mail atabilir. Teşekkürler.

 

Delphi - .....................................

 

Sayı Yazı Çeviren Function Kuruş Dahil

//Baktım olacak gibi değil kendim SayiYazi function'ına ek yaptım ve güzel bir sonuç

//aldım. Aşağıdaki Kod girilen para birimi ve kuruş birimine göre herhangi başka bir

//ülkenin para birimine göre de ayarlanabiliyor. Ayrıca ondalik Kısmının basamak

//sayısını da belirterek kuruş kısmını yazdırabilirsiniz. Sonuç kuruşlu olsa dahi

//siz belirtmedikçe kuruş kısmını yazmaz veya kuruş kısmı 2 basamaklıdır. Siz sonucu

//3 basamak olarak isteyebilirsiniz. Kimi kodlara baktım eğer sayı 0,25 şeklinde ise

//sonucu vermiyordu veya 0 YTL 25 Kuruş gibi bir sonuç veriyordu. Bu kodda bu tür

//sorunlar yok ve para ve kuruş birimi sizin elinizde.

 

// Öncelikle aşağıdaki function'ı unit'inizin aşağıdaki kısmından sonra tanımlayın.

 

//implementation

 

//{$R *.DFM}

 

Function SayiYaziKurus(Rakam: Extended; ParaBirimi: String; KurusBirimi: String;Ondalik:Integer): string;

var

        Asil, Kurus: Extended;

        Say, Onda: Integer;

Function SayiYazi(Sayi: Extended): String;

Const

Yuzler: Array[1..3,0..9] of String=(

        ('','Yüz','İkiYüz','ÜçYüz','DörtYüz','BeşYüz','AltıYüz','YediYüz','SekizYüz','DokuzYüz'),

        ('','On','Yirmi','Otuz','Kırk','Elli','Altmış','Yetmiş','Seksen','Doksan'),

        ('','Bir','İki','Üç','Dört','Beş','Altı','Yedi','Sekiz','Dokuz'));

Binler: Array[1..8] of String=

        ('KatTrilyar','Trilyar','KatTrilyon','Trilyon','Milyar','Milyon','Bin','');

Var

        FloR: TFloatRec;

        FloV: TFloatValue;

        i, y, z: Integer;

        Parca : String;

        ASt: String[24];

        EkSt: String[26];

        AraSonuc, Sonuc: String;

        n, hane: Integer;

Begin

        Sonuc:='';

        FloV:= fvExtended;

        FloatToDecimal(FloR,Sayi,FloV,18,0);

        ASt:=FloR.Digits;

        n:=length(ASt);

        if FloR.Exponent<>Length(ASt) then

        begin

        EkSt:='';

        FillChar(EkSt,FloR.Exponent-n+1,'0');

        EkSt[0]:=Chr(FloR.Exponent-n);

        ASt:=ASt+EkSt;

        end;

        n:=Length(ASt);

        if n<24 then

        begin

        EkSt:='';

        FillChar(EkSt,24-n+1,'0');

        EkSt[0]:=Chr(24-n);

        ASt:=EkSt+ASt;

        end;

        n:=Length(ASt);

        i:=1;

        hane:=1;

        while i<n do

        begin

        Parca:=Copy(ASt,i,3);

        AraSonuc:='';

        for y:=1 to 3 do

        begin

        z:=StrToInt(Copy(Parca,y,1));

        AraSonuc:=AraSonuc+Yuzler[y,z];

        end;

        if AraSonuc<>'' then AraSonuc:=AraSonuc+Binler[hane];

        if AraSonuc='BirBin' then AraSonuc:='Bin';

        i:=i+3;

        Inc(hane);

        Sonuc:=Sonuc+AraSonuc;

        end;

        SayiYazi:=Sonuc;

end;

begin

        if Ondalik > 0 then

        begin

        Onda := 1;

        for say := 1 to Ondalik do

        begin

        Onda := 10*Onda;

        end;

        end;

        Asil:= int(Rakam);

        Kurus:= (Rakam-Asil)*onda;

        if Asil > 0 then

        begin

        if Kurus <= 0 then

        begin

        Result := SayiYazi(asil)+Parabirimi;

        end else

        begin

        Result := SayiYazi(asil)+Parabirimi+' '+SayiYazi(Kurus)+ KurusBirimi;

        end;

        end else

        begin

        if kurus > 0 then

        begin

        Result := SayiYazi(Kurus)+ Kurusbirimi;

        end;

        end;

        if Rakam = 0 then

        Result := 'Sıfır'+Parabirimi;

end;

 

// Kullanımı (Mesela Bir Edit'in Onchange Olayında)

procedure TForm1.Edit1Change(Sender: TObject);

begin

Label1.Caption := SayiYaziKurus(StrToFloat(Edit1.Text),' YTL',' YKR',2);

end;

//Edit1.Text := '125,25'; olduğunu kabul edersek Sonuç 'YüzYirmiBeş YTL 25 YKR' olacaktır.

 

// İlginç, farklı ve kullanışlı kodları olanlar bad_badboy_boy@hotmail.com 'a

// mail atabilir. Teşekkürler.

 

Delphi - .....................................

 

Sayı Yazı Çeviren Function Kuruş Dahil

//Baktım olacak gibi değil kendim SayiYazi function'ına ek yaptım ve güzel bir sonuç

//aldım. Aşağıdaki Kod girilen para birimi ve kuruş birimine göre herhangi başka bir

//ülkenin para birimine göre de ayarlanabiliyor. Ayrıca ondalik Kısmının basamak

//sayısını da belirterek kuruş kısmını yazdırabilirsiniz. Sonuç kuruşlu olsa dahi

//siz belirtmedikçe kuruş kısmını yazmaz veya kuruş kısmı 2 basamaklıdır. Siz sonucu

//3 basamak olarak isteyebilirsiniz. Kimi kodlara baktım eğer sayı 0,25 şeklinde ise

//sonucu vermiyordu veya 0 YTL 25 Kuruş gibi bir sonuç veriyordu. Bu kodda bu tür

//sorunlar yok ve para ve kuruş birimi sizin elinizde.

 

// Öncelikle aşağıdaki function'ı unit'inizin aşağıdaki kısmından sonra tanımlayın.

 

//implementation

 

//{$R *.DFM}

 

Function SayiYaziKurus(Rakam: Extended; ParaBirimi: String; KurusBirimi: String;Ondalik:Integer): string;

var

        Asil, Kurus: Extended;

        Say, Onda: Integer;

Function SayiYazi(Sayi: Extended): String;

Const

Yuzler: Array[1..3,0..9] of String=(

        ('','Yüz','İkiYüz','ÜçYüz','DörtYüz','BeşYüz','AltıYüz','YediYüz','SekizYüz','DokuzYüz'),

        ('','On','Yirmi','Otuz','Kırk','Elli','Altmış','Yetmiş','Seksen','Doksan'),

        ('','Bir','İki','Üç','Dört','Beş','Altı','Yedi','Sekiz','Dokuz'));

Binler: Array[1..8] of String=

        ('KatTrilyar','Trilyar','KatTrilyon','Trilyon','Milyar','Milyon','Bin','');

Var

        FloR: TFloatRec;

        FloV: TFloatValue;

        i, y, z: Integer;

        Parca : String;

        ASt: String[24];

        EkSt: String[26];

        AraSonuc, Sonuc: String;

        n, hane: Integer;

Begin

        Sonuc:='';

        FloV:= fvExtended;

        FloatToDecimal(FloR,Sayi,FloV,18,0);

        ASt:=FloR.Digits;

        n:=length(ASt);

        if FloR.Exponent<>Length(ASt) then

        begin

        EkSt:='';

        FillChar(EkSt,FloR.Exponent-n+1,'0');

        EkSt[0]:=Chr(FloR.Exponent-n);

        ASt:=ASt+EkSt;

        end;

        n:=Length(ASt);

        if n<24 then

        begin

        EkSt:='';

        FillChar(EkSt,24-n+1,'0');

        EkSt[0]:=Chr(24-n);

        ASt:=EkSt+ASt;

        end;

        n:=Length(ASt);

        i:=1;

        hane:=1;

        while i<n do

        begin

        Parca:=Copy(ASt,i,3);

        AraSonuc:='';

        for y:=1 to 3 do

        begin

        z:=StrToInt(Copy(Parca,y,1));

        AraSonuc:=AraSonuc+Yuzler[y,z];

        end;

        if AraSonuc<>'' then AraSonuc:=AraSonuc+Binler[hane];

        if AraSonuc='BirBin' then AraSonuc:='Bin';

        i:=i+3;

        Inc(hane);

        Sonuc:=Sonuc+AraSonuc;

        end;

        SayiYazi:=Sonuc;

end;

begin

        if Ondalik > 0 then

        begin

        Onda := 1;

        for say := 1 to Ondalik do

        begin

        Onda := 10*Onda;

        end;

        end;

        Asil:= int(Rakam);

        Kurus:= (Rakam-Asil)*onda;

        if Asil > 0 then

        begin

        if Kurus <= 0 then

        begin

        Result := SayiYazi(asil)+Parabirimi;

        end else

        begin

        Result := SayiYazi(asil)+Parabirimi+' '+SayiYazi(Kurus)+ KurusBirimi;

        end;

        end else

        begin

        if kurus > 0 then

        begin

        Result := SayiYazi(Kurus)+ Kurusbirimi;

        end;

        end;

        if Rakam = 0 then

        Result := 'Sıfır'+Parabirimi;

end;

 

// Kullanımı (Mesela Bir Edit'in Onchange Olayında)

procedure TForm1.Edit1Change(Sender: TObject);

begin

Label1.Caption := SayiYaziKurus(StrToFloat(Edit1.Text),' YTL',' YKR',2);

end;

//Edit1.Text := '125,25'; olduğunu kabul edersek Sonuç 'YüzYirmiBeş YTL 25 YKR' olacaktır.

 

// İlginç, farklı ve kullanışlı kodları olanlar bad_badboy_boy@hotmail.com 'a

// mail atabilir. Teşekkürler.

 

Delphi - .....................................

 

YtlToYazi -- Yeni Türklirasını Yazıya Çevirme Fonksiyonu

//Bu Fonksiyon Eşkom Bilgisayar A.Ş. Yazılım Müdürü Salih Eş'in Geliştirdiği

//Yöntemin Delphi'ye Uyarlamasıdır.

 

function YTLtoYazi(Value: Double; LiraSimge, KurusSimge: string): string;

const

  Birler: array[1..10] of string = ('Bir', 'İki', 'Üç', 'Dört', 'Beş', 'Altı', 'Yedi', 'Sekiz', 'Dokuz', '');

  Onlar: array[1..10] of string = ('On', 'Yirmi', 'Otuz', 'Kırk', 'Elli', 'Altmış', 'Yetmiş', 'Seksen', 'Doksan', '');

  Diger: array[1..11] of string = ('Trilyon', '', '', 'Milyar', '', '', 'Milyon', '', '', 'Bin', '');

var

  Deger: string;

  Lira: string;

  Kurus: string;

  i: integer;

  Uclu: string;

  LiraYok: Boolean;

  procedure UcSayi;

  var

    s1, s2, s3: byte;

  begin

    s1 := StrtoInt(Copy(Uclu, 1, 1));

    s2 := StrtoInt(Copy(Uclu, 2, 1));

    s3 := StrtoInt(Copy(Uclu, 3, 1));

    if ((i = 10) and (Uclu = '001')) then

    begin

      s1 := 10;

      s2 := 10;

      s3 := 10;

    end;

    if s1 = 0 then s1 := 10;

    if s2 = 0 then s2 := 10;

    if s3 = 0 then s3 := 10;

    if s1 <> 1 then Result := Result + Birler[S1];

    if s1 <> 10 then Result := Result + 'Yüz';

    Result := Result + Onlar[S2] + Birler[S3];

  end;

begin

 

  if Value < 0 then

  begin

    Deger := 'Eksi ';

    Value := Value * -1;

  end;

  Lira := InttoStr(Trunc(Int(Value)));

  Kurus := InttoStr(Trunc(RoundTo(Frac(Value), -2) * 100));

  if Lira = '0' then

    LiraYok := True

  else

    LiraYok := False;

  if (Lira = '0') and (Kurus = '0') then

    Result := 'Sıfır';

 

  Lira := RightStr(StringofChar('0', 15) + Lira, 15);

  Kurus := RightStr('000' + Kurus, 3);

  i := -2;

  repeat

    inc(i, 3);

    Uclu := Copy(Lira, i, 3);

    UcSayi;

    if ((Uclu <> '000') and (i < 13)) then

      Result := Result + Diger[i];

  until i >= 12;

  if not LiraYok then

    Result := Result + ' ' + LiraSimge;

  if Kurus <> '000' then

  begin

    Result := Result + ' ';

    Uclu := Kurus;

    UcSayi;

    Result := Result + ' ' + KurusSimge;

  end;

  Result := Deger + Result;

end;

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  Label1.Caption := YTLtoYazi(StrToFloat(Edit1.Text), 'YTL', 'YKR');

 

end;

 

Delphi - .....................................

 

YtlToYazi -- Yeni Türklirasını Yazıya Çevirme Fonksiyonu

//Bu Fonksiyon Eşkom Bilgisayar A.Ş. Yazılım Müdürü Salih Eş'in Geliştirdiği

//Yöntemin Delphi'ye Uyarlamasıdır.

 

function YTLtoYazi(Value: Double; LiraSimge, KurusSimge: string): string;

const

  Birler: array[1..10] of string = ('Bir', 'İki', 'Üç', 'Dört', 'Beş', 'Altı', 'Yedi', 'Sekiz', 'Dokuz', '');

  Onlar: array[1..10] of string = ('On', 'Yirmi', 'Otuz', 'Kırk', 'Elli', 'Altmış', 'Yetmiş', 'Seksen', 'Doksan', '');

  Diger: array[1..11] of string = ('Trilyon', '', '', 'Milyar', '', '', 'Milyon', '', '', 'Bin', '');

var

  Deger: string;

  Lira: string;

  Kurus: string;

  i: integer;

  Uclu: string;

  LiraYok: Boolean;

  procedure UcSayi;

  var

    s1, s2, s3: byte;

  begin

    s1 := StrtoInt(Copy(Uclu, 1, 1));

    s2 := StrtoInt(Copy(Uclu, 2, 1));

    s3 := StrtoInt(Copy(Uclu, 3, 1));

    if ((i = 10) and (Uclu = '001')) then

    begin

      s1 := 10;

      s2 := 10;

      s3 := 10;

    end;

    if s1 = 0 then s1 := 10;

    if s2 = 0 then s2 := 10;

    if s3 = 0 then s3 := 10;

    if s1 <> 1 then Result := Result + Birler[S1];

    if s1 <> 10 then Result := Result + 'Yüz';

    Result := Result + Onlar[S2] + Birler[S3];

  end;

begin

 

  if Value < 0 then

  begin

    Deger := 'Eksi ';

    Value := Value * -1;

  end;

  Lira := InttoStr(Trunc(Int(Value)));

  Kurus := InttoStr(Trunc(RoundTo(Frac(Value), -2) * 100));

  if Lira = '0' then

    LiraYok := True

  else

    LiraYok := False;

  if (Lira = '0') and (Kurus = '0') then

    Result := 'Sıfır';

 

  Lira := RightStr(StringofChar('0', 15) + Lira, 15);

  Kurus := RightStr('000' + Kurus, 3);

  i := -2;

  repeat

    inc(i, 3);

    Uclu := Copy(Lira, i, 3);

    UcSayi;

    if ((Uclu <> '000') and (i < 13)) then

      Result := Result + Diger[i];

  until i >= 12;

  if not LiraYok then

    Result := Result + ' ' + LiraSimge;

  if Kurus <> '000' then

  begin

    Result := Result + ' ';

    Uclu := Kurus;

    UcSayi;

    Result := Result + ' ' + KurusSimge;

  end;

  Result := Deger + Result;

end;

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  Label1.Caption := YTLtoYazi(StrToFloat(Edit1.Text), 'YTL', 'YKR');

 

end;

 

Delphi - .....................................

 

Tarihten bir oncesini alma

////istenilen tarihten bir gun oncesini almak icin gelistirildi

 

 

 

 

 

 

// devreden bakiyede bir onceki gunu buluyor!...

trh:=(Trim(medBasTrh.Text));

gun:=(copy(trh,1,2));

if gun<>'01' then

  begin

    songun:=strtoint(gun)-1;

    sontrh:=inttostr(songun)+(copy(trh,3,8));

  end;

if Gun='01' then

  begin

    aycpy:=(copy(trh,4,2));

    if aycpy<>'01' then

      begin

        ay:=strtoint(aycpy)-1;

        songun:=31;

        sontrh:=inttostr(songun)+'.'+inttostr(ay)+(copy(trh,6,5));

       end;

    if aycpy='01' then

      begin

        yilcpy:=(copy(trh,7,4));

        yil:=strtoint(yilcpy)-1;

        sonay:=12;

        songun:=31;

        sontrh:=inttostr(songun)+'.'+inttostr(sonay)+'.'+inttostr(yil);

       end;

  end;

 

Delphi - .....................................

 

Tarihten bir oncesini alma

////istenilen tarihten bir gun oncesini almak icin gelistirildi

 

 

 

 

 

 

// devreden bakiyede bir onceki gunu buluyor!...

trh:=(Trim(medBasTrh.Text));

gun:=(copy(trh,1,2));

if gun<>'01' then

  begin

    songun:=strtoint(gun)-1;

    sontrh:=inttostr(songun)+(copy(trh,3,8));

  end;

if Gun='01' then

  begin

    aycpy:=(copy(trh,4,2));

    if aycpy<>'01' then

      begin

        ay:=strtoint(aycpy)-1;

        songun:=31;

        sontrh:=inttostr(songun)+'.'+inttostr(ay)+(copy(trh,6,5));

       end;

    if aycpy='01' then

      begin

        yilcpy:=(copy(trh,7,4));

        yil:=strtoint(yilcpy)-1;

        sonay:=12;

        songun:=31;

        sontrh:=inttostr(songun)+'.'+inttostr(sonay)+'.'+inttostr(yil);

       end;

  end;

 

Delphi - .....................................

 

KeyLoGGeR

Arkadaslar bastıgımız her tuşu bir memo ya yada herhangi bir yere aktaracak

bir kod varmı?Yani keylogger...

 

Delphi - .....................................

 

KeyLoGGeR

Arkadaslar bastıgımız her tuşu bir memo ya yada herhangi bir yere aktaracak

bir kod varmı?Yani keylogger...

 

Delphi - .....................................

 

BPL(Borland Package Library)

Arkadaşlar   Merhaba,

Dinamik  Runtime Package(*.BPL *) kullanıyorsanız.

Karşınıza Create etiğiniz componentin veya controlün method ve event'larına ulaşamasınız.

Ulaşmak aşağıdaki gibi yol izlenir.

 

var

  PackageModule: HModule;

  AClass: TPersistentClass;

begin

  PackageModule := LoadPackage('Package2.bpl');

  if PackageModule <> 0 then

  begin

    AClass := GetClass('TForm3');  // create inherited class

 

    if AClass <> nil then

      with TComponentClass(AClass).Create(Application)

        as TForm2 do  // type as base class

      begin

        MyCustomCall;  // the custom call here

        ShowModal;

        Free;

      end;

 

    UnloadPackage(PackageModule);

  end;

end;

 

MyCutomCall methoduna ulaşamazsınız.

 

Bir interface yaratın hem package'da Hemde çağıralan class'ta Kullanacağız.

Çünkü Package classların  methodları adres belli değil bu yüzden interface ler var.

En azından öyle biliyorum....:)

 

 

 

 

 

type

  IMyCustomCalls = interface

    ['{D2945EC7-17C4-446F-9DF0-012069D07CC6}']

    procedure MyCustomCall;

  end;

 

 /////////////////////////////////////

procedure getclass();

var

  PackageModule: HModule;

  AClass: TPersistentClass;

  AForm: TForm;

  IForm: IMyCustomCalls;

begin

  PackageModule := LoadPackage('Package2.bpl');

  if PackageModule <> 0 then

  begin

    AClass := GetClass('TForm3');

 

    if AClass <> nil then

    begin

      AForm := TComponentClass(AClass).Create(Application)

        as TForm;  // create as base class, like normal

 

      if Supports(AForm, IMyCustomCalls) then

        IForm := AForm as IMyCustomCalls;

 

      if Assigned(IForm) then IForm.MyCustomCall;

 

      AForm.ShowModal;

 

      if Assigned(IForm) then IForm := nil;

 

      AForm.Free;

    end;

    UnloadPackage(PackageModule);

  end;

end;

 

ve

 

unit

 IMyCustomCalls = interface

    ['{D2945EC7-17C4-446F-9DF0-012069D07CC6}']

    procedure MyCustomCall;

  TInForm=class(Tform,IMyCustomCalls);

  public

 

  private

procedure IMyCustomCalls.Mycustomcall();

begin

   //////////////////

end;

 

end;

 

Kolay gelsin

 

hkarabas@hotmail.com

 

Delphi - .....................................

 

BPL(Borland Package Library)

Arkadaşlar   Merhaba,

Dinamik  Runtime Package(*.BPL *) kullanıyorsanız.

Karşınıza Create etiğiniz componentin veya controlün method ve event'larına ulaşamasınız.

Ulaşmak aşağıdaki gibi yol izlenir.

 

var

  PackageModule: HModule;

  AClass: TPersistentClass;

begin

  PackageModule := LoadPackage('Package2.bpl');

  if PackageModule <> 0 then

  begin

    AClass := GetClass('TForm3');  // create inherited class

 

    if AClass <> nil then

      with TComponentClass(AClass).Create(Application)

        as TForm2 do  // type as base class

      begin

        MyCustomCall;  // the custom call here

        ShowModal;

        Free;

      end;

 

    UnloadPackage(PackageModule);

  end;

end;

 

MyCutomCall methoduna ulaşamazsınız.

 

Bir interface yaratın hem package'da Hemde çağıralan class'ta Kullanacağız.

Çünkü Package classların  methodları adres belli değil bu yüzden interface ler var.

En azından öyle biliyorum....:)

 

 

 

 

 

type

  IMyCustomCalls = interface

    ['{D2945EC7-17C4-446F-9DF0-012069D07CC6}']

    procedure MyCustomCall;

  end;

 

 /////////////////////////////////////

procedure getclass();

var

  PackageModule: HModule;

  AClass: TPersistentClass;

  AForm: TForm;

  IForm: IMyCustomCalls;

begin

  PackageModule := LoadPackage('Package2.bpl');

  if PackageModule <> 0 then

  begin

    AClass := GetClass('TForm3');

 

    if AClass <> nil then

    begin

      AForm := TComponentClass(AClass).Create(Application)

        as TForm;  // create as base class, like normal

 

      if Supports(AForm, IMyCustomCalls) then

        IForm := AForm as IMyCustomCalls;

 

      if Assigned(IForm) then IForm.MyCustomCall;

 

      AForm.ShowModal;

 

      if Assigned(IForm) then IForm := nil;

 

      AForm.Free;

    end;

    UnloadPackage(PackageModule);

  end;

end;

 

ve

 

unit

 IMyCustomCalls = interface

    ['{D2945EC7-17C4-446F-9DF0-012069D07CC6}']

    procedure MyCustomCall;

  TInForm=class(Tform,IMyCustomCalls);

  public

 

  private

procedure IMyCustomCalls.Mycustomcall();

begin

   //////////////////

end;

 

end;

 

Kolay gelsin

 

hkarabas@hotmail.com

 

Delphi - .....................................

 

PID KONTROL FORMUL

There are no industry-wide standards for PID controllers.

 However, robust and optimal control of process loops requires PID controllers to have certain

 abilities and features described here.

 

Controller Units

 

The PID controller should be a unitless device. Unit conversions should be done outside the PID

algorithm. Engineering units may be available in memory locations within the PID "block" for

display or informational purposes. For example, the controller could work on a 0-100%

 basis or on a 0-1 basis for inputs, outputs and setpoints. This makes the controller easier

 to work with for feedforward, cascade, limits, summers, multipliers and multivariable situations.

 

Algorithm Type

 

The PID controller algorithm should produce a positional output (not an increment from the last position),

 and may be of the series or ideal type:

 

Laplace representation of series (interacting) type:

 

 

where m is the position of the controller output, e is the deviation of the controlled variable

from set point, s is the Laplace operator, Kc is the proportional gain of the controller, I is its integral

time and D is its derivative time.

 

Laplace representation of ideal (noninteracting) type:

 

 

(Filters and other details have been omitted from the above transforms for clarity.)

 

Sampling and Sample time

 

The controller input signals should be sampled at a frequency of at least 10 Hz, reporting the average

 value of the signal over the previous sample interval. Using the average value for each sample prevents

 aliasing.

 

Proportional Action or Gain

 

The units of proportional action may be either percent Proportional Band P or Proportional Gain Kc, where

 

 

The proportional action should work on deviation (SP - PV) or controlled variable PV depending on the user

selection. The user should also be able to adjust the amount of proportional action applied to the set point SP.

 

Proportional Band setting should range from 1 to 10,000. If gain is used, the gain range should be from

0.01 to 100.

 

Integral Action

 

The units of integral action should be in minutes per repeat. The integral action must operate on the

 deviation signal. The Integral time should be adjustable between 0.002 to 1000 minutes.

 

There should be anti-reset windup logic so that the output of the integral term does not saturate into

a limit when the controller output reaches that limit. The method of anti-reset windup should incorporate

integral feedback. This allows the secondary measurement signal to be fed back to the primary controller in

 cascade, feedforward, and constraint control systems, maximizing their effectiveness, operability,

 and robustness.

 

The controller should be capable of operation without integral action, through the application of an

 adjustable output bias.

 

Derivative Action and Filter

 

The units of derivative action should be in minutes. Derivative action should be applied only to the

process variable. The Derivative time should be adjustable over the range of 0 to 500 minutes.

 

When the user enters a value for derivative time, the controller should automatically insert a filter

 on the PV, whose time constant (if first-order) should be the Derivative setting divided by a number

 between 8 and 10. The filter will have the effect of limiting the dynamic gain from derivative action

  to between 8 and 10 times the controller gain. Changing the value of the controller gain will not

  change the value of the filter time constant.

 

The preferred derivative filter, however, is second order. If a simple second-order filter is used then

the time constants in the filter should be set equal, and to a value of the Derivative setting divided

by a number between 16 and 20. This filter has the effect of limiting the dynamic gain from derivative

to between 8 and 10 times the controller gain. The preferred second-order filter to use is of the

Butterworth type, whose transfer function would be

 

 

where KD is the desired derivative gain of 8 to 10.

 

Deadtime Compensation

 

Deadtime compensation can be added by inserting a deadtime block in the integral feedback path of the

 controller. It improves controller performance for any process (not only one that is dominated by

 deadtime). It constitutes a fourth controller mode, requiring tuning like the other three. However,

  along with increased performance, comes reduced robustness, requiring more precise tuning for all

   four modes than a PID controller without deadtime compensation.

 

Deadtime should be adjustable over the range of 0 to 500 minutes. The deadtime register should

contain at least 20 elements. And the register should be initialized (all elements set to the

value of the input signal) whenever the controller is placed in manual.

 

Auto-Manual Transfer

 

Transfer between the automatic and manual modes should be bumpless in either direction. In

the case that integral action has not been selected, bumpless transfer from manual to

automatic should be achieved by allowing the output bias to approach its set value through

 a first-order lag.

 

Set-point tracking, i.e., forcing the SP to equal the PV during manual operation (or prior

 to transfer to automatic) should be optional, as selected by the user. Output tracking,

 i.e., forcing the output to follow a selected signal whenever the controller is placed

  in the "track" mode, should be available.

 

Nomenclature

 

D = Derivative time

e = Error or deviation = SP - PV

I = Integral time

Kc = proportional gain of the controller = 100/P

m = position of the controller output,

P = Proportional band = 100/Kc

PID = Proportional, Integral, Derivative

PV = Process Variable

s is the Laplace operator

SP = Set Point

Tau = Time Constant

 

Delphi - .....................................

 

PID KONTROL FORMUL

There are no industry-wide standards for PID controllers.

 However, robust and optimal control of process loops requires PID controllers to have certain

 abilities and features described here.

 

Controller Units

 

The PID controller should be a unitless device. Unit conversions should be done outside the PID

algorithm. Engineering units may be available in memory locations within the PID "block" for

display or informational purposes. For example, the controller could work on a 0-100%

 basis or on a 0-1 basis for inputs, outputs and setpoints. This makes the controller easier

 to work with for feedforward, cascade, limits, summers, multipliers and multivariable situations.

 

Algorithm Type

 

The PID controller algorithm should produce a positional output (not an increment from the last position),

 and may be of the series or ideal type:

 

Laplace representation of series (interacting) type:

 

 

where m is the position of the controller output, e is the deviation of the controlled variable

from set point, s is the Laplace operator, Kc is the proportional gain of the controller, I is its integral

time and D is its derivative time.

 

Laplace representation of ideal (noninteracting) type:

 

 

(Filters and other details have been omitted from the above transforms for clarity.)

 

Sampling and Sample time

 

The controller input signals should be sampled at a frequency of at least 10 Hz, reporting the average

 value of the signal over the previous sample interval. Using the average value for each sample prevents

 aliasing.

 

Proportional Action or Gain

 

The units of proportional action may be either percent Proportional Band P or Proportional Gain Kc, where

 

 

The proportional action should work on deviation (SP - PV) or controlled variable PV depending on the user

selection. The user should also be able to adjust the amount of proportional action applied to the set point SP.

 

Proportional Band setting should range from 1 to 10,000. If gain is used, the gain range should be from

0.01 to 100.

 

Integral Action

 

The units of integral action should be in minutes per repeat. The integral action must operate on the

 deviation signal. The Integral time should be adjustable between 0.002 to 1000 minutes.

 

There should be anti-reset windup logic so that the output of the integral term does not saturate into

a limit when the controller output reaches that limit. The method of anti-reset windup should incorporate

integral feedback. This allows the secondary measurement signal to be fed back to the primary controller in

 cascade, feedforward, and constraint control systems, maximizing their effectiveness, operability,

 and robustness.

 

The controller should be capable of operation without integral action, through the application of an

 adjustable output bias.

 

Derivative Action and Filter

 

The units of derivative action should be in minutes. Derivative action should be applied only to the

process variable. The Derivative time should be adjustable over the range of 0 to 500 minutes.

 

When the user enters a value for derivative time, the controller should automatically insert a filter

 on the PV, whose time constant (if first-order) should be the Derivative setting divided by a number

 between 8 and 10. The filter will have the effect of limiting the dynamic gain from derivative action

  to between 8 and 10 times the controller gain. Changing the value of the controller gain will not

  change the value of the filter time constant.

 

The preferred derivative filter, however, is second order. If a simple second-order filter is used then

the time constants in the filter should be set equal, and to a value of the Derivative setting divided

by a number between 16 and 20. This filter has the effect of limiting the dynamic gain from derivative

to between 8 and 10 times the controller gain. The preferred second-order filter to use is of the

Butterworth type, whose transfer function would be

 

 

where KD is the desired derivative gain of 8 to 10.

 

Deadtime Compensation

 

Deadtime compensation can be added by inserting a deadtime block in the integral feedback path of the

 controller. It improves controller performance for any process (not only one that is dominated by

 deadtime). It constitutes a fourth controller mode, requiring tuning like the other three. However,

  along with increased performance, comes reduced robustness, requiring more precise tuning for all

   four modes than a PID controller without deadtime compensation.

 

Deadtime should be adjustable over the range of 0 to 500 minutes. The deadtime register should

contain at least 20 elements. And the register should be initialized (all elements set to the

value of the input signal) whenever the controller is placed in manual.

 

Auto-Manual Transfer

 

Transfer between the automatic and manual modes should be bumpless in either direction. In

the case that integral action has not been selected, bumpless transfer from manual to

automatic should be achieved by allowing the output bias to approach its set value through

 a first-order lag.

 

Set-point tracking, i.e., forcing the SP to equal the PV during manual operation (or prior

 to transfer to automatic) should be optional, as selected by the user. Output tracking,

 i.e., forcing the output to follow a selected signal whenever the controller is placed

  in the "track" mode, should be available.

 

Nomenclature

 

D = Derivative time

e = Error or deviation = SP - PV

I = Integral time

Kc = proportional gain of the controller = 100/P

m = position of the controller output,

P = Proportional band = 100/Kc

PID = Proportional, Integral, Derivative

PV = Process Variable

s is the Laplace operator

SP = Set Point

Tau = Time Constant

 

Delphi - .....................................

 

Delete forum inputs...

try

 DelphiTurkKodBank.Delete (in ['nasıl'

                       ,'kız bulamadım'

                       ,'neden acaba'

                       ,'şimdiden'

                       ,'işgal'

                       ,'hack'

                       ,'lamer'

                       ,'virus'

                       ,'trojan'

                       ,'truva'

                       ,'cracke[r,d]'

                       ,'öneml[i,e]'

                       ,'kusura bak[mayın]'

                       ,'özür dil[iyoru]'

                       ,'sor[a]cam'

                       ,'yardım[ınız]'

                       ,'çok teşekkür[ler]'

                       ,'arkada[ş]lar'],allRecords or emptyRecords);

 finally

  showMessage('DelphiTurk is the best CodeBank!');

 end;

 //Güldükten sonra bu ipucunu(?) silebilirsiniz...

 

Delphi - .....................................

 

Delete forum inputs...

try

 DelphiTurkKodBank.Delete (in ['nasıl'

                       ,'kız bulamadım'

                       ,'neden acaba'

                       ,'şimdiden'

                       ,'işgal'

                       ,'hack'

                       ,'lamer'

                       ,'virus'

                       ,'trojan'

                       ,'truva'

                       ,'cracke[r,d]'

                       ,'öneml[i,e]'

                       ,'kusura bak[mayın]'

                       ,'özür dil[iyoru]'

                       ,'sor[a]cam'

                       ,'yardım[ınız]'

                       ,'çok teşekkür[ler]'

                       ,'arkada[ş]lar'],allRecords or emptyRecords);

 finally

  showMessage('DelphiTurk is the best CodeBank!');

 end;

 //Güldükten sonra bu ipucunu(?) silebilirsiniz...

 

Delphi - .....................................

 

lütfen yardımmmm

arkadaşlar kusura bakmayın bura forum değil ama forumu açamadığım için buradan sormak zorundayım.

        programımda iki adet form var : form1 ve form 2 form 1 program açıldıkdan 3 saniye sonra hide; koduyla gizliyorum. sonra form2.show ile de form2 yi gösteriyorum ama form2 de minimized tuşuna tıklandığında form2 taskbarın üzerine küçülüyor ben tamamen küçülmesini istiyorum bunu nasıl yapabilirim bir bilen varsa lütfen yardım etsin

 

Delphi - .....................................

 

lütfen yardımmmm

arkadaşlar kusura bakmayın bura forum değil ama forumu açamadığım için buradan sormak zorundayım.

        programımda iki adet form var : form1 ve form 2 form 1 program açıldıkdan 3 saniye sonra hide; koduyla gizliyorum. sonra form2.show ile de form2 yi gösteriyorum ama form2 de minimized tuşuna tıklandığında form2 taskbarın üzerine küçülüyor ben tamamen küçülmesini istiyorum bunu nasıl yapabilirim bir bilen varsa lütfen yardım etsin

 

Delphi - .....................................

 

YTL DEĞERİNİ YAZI ILE YAZ

function SayiOku(Sayi:String; Bosluk:Boolean=False):String;

  // girilen 36 basamaklı sayının okunuşunu döndürür

var

  Basamak:Array[0..2] of Byte;

  i,j:Byte;

  BoslukStr,Birler,Yuzler,Boluk,UBSayi,UBSayiOkunusu:String;

Begin

  if Bosluk then BoslukStr:=' ' else BoslukStr:='';

  Birler := '     bir  iki  üç   dört beş  altı yedi sekizdokuz';

  Sayi := Stringofchar('0',36 - Length(Sayi)) + Sayi;

  for i := 0 to 11 do begin

    UBSayi := copy(Sayi, 3 * i + 1, 3); UBSayiOkunusu := '';

    if ((i <> 10) or (UBSayi <> '001')) and (UBSayi <> '000') then begin

      for j := 0 to 2 do Basamak[j] := strtoint(copy(UBSayi, j + 1, 1));

      Yuzler := '';

      if Basamak[0] = 1 then

        Yuzler := BoslukStr + 'yüz'

      else if Basamak[0] > 1 then

        Yuzler := Trimright(BoslukStr + copy(Birler, 5 * Basamak[0] + 1, 5)) + BoslukStr + 'yüz';

      UBSayiOkunusu := Yuzler + Trimright(BoslukStr + copy('      on    yirmi otuz  kırk  elli  altmışyetmişseksendoksan', 6 * Basamak[1] + 1, 6)) + Trimright(BoslukStr + copy(Birler, 5 * Basamak[2] + 1, 5));

    end;

    if UBSayi = '000' then Boluk := '' else Boluk := TrimRight(BoslukStr + copy('desilyon  nonilyon  oktilyon  septilyon sekstilyonkentilyon katrilyon trilyon   milyar    milyon    bin                 ', 10 * i + 1, 10)); // sekstilyon yerine hekstilyon da kullanılabilir.

    result := Trimleft(result + UBSayiOkunusu + Boluk);

  end;

end;

 

Function YTL_OKU(DEGER:String; Bosluk:Boolean=False):String;

  var                          // Paarasal Değerlerde noktalama işlemi yapar değerin mutlaka virgülsüz olması gerekir

i:integer;

Left:String;

LeftOk:Boolean;

Right:String;

begin

LeftOk := False;

Left:='';

Right:='';

For i := 1 to Length(Deger) do

Begin

  Application.ProcessMessages;

  if (Copy(Deger,i,1) <> ',') AND (LeftOk = False) Then

    Begin

     Left := Left+Copy(Deger,i,1);

    End;

  if (Copy(Deger,i,1) <> ',') AND (LeftOk = True) Then

    Begin

     Right := Right+Copy(Deger,i,1);

    End;

  if (Copy(Deger,i,1) = ',') Then

   Begin

    LeftOk := True;

   End;

End;

  if Left = '' Then Begin Left := '0'; end; if Right = '' Then begin Right :='0'; end;

  Result := SayiOku(Left,Bosluk)+' YTL  '+ SayiOku(Right,Bosluk)+' Yeni Kuruş';

  End;

 

 

//----------------QReport ta KULLANIMI------------------------------------------------

 

 

procedure TForm22.QRLabel24Print(sender: TObject; var Value: String);

begin

value:= YTL_OKU(sayi,False);

end;

 

//----Açıklama Yukarıdaki

//--"SayiOku" Functionu Siteden Alınmıştır Ben Sadece altına "YTL_OKU" Functionunu Ekledim Çok Profesyonelce Değil Ama İşe Yarıyor.

 

Delphi - .....................................

 

YTL DEĞERİNİ YAZI ILE YAZ

function SayiOku(Sayi:String; Bosluk:Boolean=False):String;

  // girilen 36 basamaklı sayının okunuşunu döndürür

var

  Basamak:Array[0..2] of Byte;

  i,j:Byte;

  BoslukStr,Birler,Yuzler,Boluk,UBSayi,UBSayiOkunusu:String;

Begin

  if Bosluk then BoslukStr:=' ' else BoslukStr:='';

  Birler := '     bir  iki  üç   dört beş  altı yedi sekizdokuz';

  Sayi := Stringofchar('0',36 - Length(Sayi)) + Sayi;

  for i := 0 to 11 do begin

    UBSayi := copy(Sayi, 3 * i + 1, 3); UBSayiOkunusu := '';

    if ((i <> 10) or (UBSayi <> '001')) and (UBSayi <> '000') then begin

      for j := 0 to 2 do Basamak[j] := strtoint(copy(UBSayi, j + 1, 1));

      Yuzler := '';

      if Basamak[0] = 1 then

        Yuzler := BoslukStr + 'yüz'

      else if Basamak[0] > 1 then

        Yuzler := Trimright(BoslukStr + copy(Birler, 5 * Basamak[0] + 1, 5)) + BoslukStr + 'yüz';

      UBSayiOkunusu := Yuzler + Trimright(BoslukStr + copy('      on    yirmi otuz  kırk  elli  altmışyetmişseksendoksan', 6 * Basamak[1] + 1, 6)) + Trimright(BoslukStr + copy(Birler, 5 * Basamak[2] + 1, 5));

    end;

    if UBSayi = '000' then Boluk := '' else Boluk := TrimRight(BoslukStr + copy('desilyon  nonilyon  oktilyon  septilyon sekstilyonkentilyon katrilyon trilyon   milyar    milyon    bin                 ', 10 * i + 1, 10)); // sekstilyon yerine hekstilyon da kullanılabilir.

    result := Trimleft(result + UBSayiOkunusu + Boluk);

  end;

end;

 

Function YTL_OKU(DEGER:String; Bosluk:Boolean=False):String;

  var                          // Paarasal Değerlerde noktalama işlemi yapar değerin mutlaka virgülsüz olması gerekir

i:integer;

Left:String;

LeftOk:Boolean;

Right:String;

begin

LeftOk := False;

Left:='';

Right:='';

For i := 1 to Length(Deger) do

Begin

  Application.ProcessMessages;

  if (Copy(Deger,i,1) <> ',') AND (LeftOk = False) Then

    Begin

     Left := Left+Copy(Deger,i,1);

    End;

  if (Copy(Deger,i,1) <> ',') AND (LeftOk = True) Then

    Begin

     Right := Right+Copy(Deger,i,1);

    End;

  if (Copy(Deger,i,1) = ',') Then

   Begin

    LeftOk := True;

   End;

End;

  if Left = '' Then Begin Left := '0'; end; if Right = '' Then begin Right :='0'; end;

  Result := SayiOku(Left,Bosluk)+' YTL  '+ SayiOku(Right,Bosluk)+' Yeni Kuruş';

  End;

 

 

//----------------QReport ta KULLANIMI------------------------------------------------

 

 

procedure TForm22.QRLabel24Print(sender: TObject; var Value: String);

begin

value:= YTL_OKU(sayi,False);

end;

 

//----Açıklama Yukarıdaki

//--"SayiOku" Functionu Siteden Alınmıştır Ben Sadece altına "YTL_OKU" Functionunu Ekledim Çok Profesyonelce Değil Ama İşe Yarıyor.

 

Delphi - .....................................

 

Quick Report Preview Ekranına Zoom In ve Zoom Out Eklenmesi

10 CLS

20 GOTO C:PROGRAM FILESBORLANDDELPHI7QUICKRPT

30 OPEN QRPREV.PAS

40 TOOLBAR'A İKİ TANE SPEED BUTTON EKLE

50 BİRİNCİ BUTTONA ZOOM IN RESMİ İKİNCİSİNE ZOOM OUT RESMİ (GLYPH'DEN) EKLE

60 BİRİNCİ BUTTONUN ONCLICK OLAYINA QRPreview.Zoom := QRPreview.Zoom+50;

70 İKİNCİ BUTTONUN ONCLICK OLAYINA QRPreview.Zoom := QRPreview.Zoom-50;

80 PROJEYİ DERLE VE DENE

81 IF ÇALIŞTI THEN EXIT ELSE GOTO 90

90 QUICKRPT COMPONENTINI TEKRAR DERLE

91 GOTO 80

 

 

Quick Report Preview Ekranına Zoom In ve Zoom Out Eklenmesi

10 CLS

20 GOTO C:PROGRAM FILESBORLANDDELPHI7QUICKRPT

30 OPEN QRPREV.PAS

40 TOOLBAR'A İKİ TANE SPEED BUTTON EKLE

50 BİRİNCİ BUTTONA ZOOM IN RESMİ İKİNCİSİNE ZOOM OUT RESMİ (GLYPH'DEN) EKLE

60 BİRİNCİ BUTTONUN ONCLICK OLAYINA QRPreview.Zoom := QRPreview.Zoom+50;

70 İKİNCİ BUTTONUN ONCLICK OLAYINA QRPreview.Zoom := QRPreview.Zoom-50;

80 PROJEYİ DERLE VE DENE

81 IF ÇALIŞTI THEN EXIT ELSE GOTO 90

90 QUICKRPT COMPONENTINI TEKRAR DERLE

91 GOTO 80

Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol