
decompilera gerek yok hem swf hem fla sı mevcut bende.
buton olayı için bir yorum yaparmısın hocam. 81 tane buton evetine kod yazmaktansa formdaki hangi butona tıklandığını yakalıyabilirmiyim.
Kod: Tümünü seç
Case TButton(Sender).Tag of
1 : showmessage('Adana butonu basıldı');
6 : showmessage('Ankara butonu basıldı');
34: showmessage('İstanbul butonu basıldı');
end;
Kod: Tümünü seç
{$R 'RES\RES.RES'}
// -----------------------------------------------------------------------------
// Global Değişken olarak bıraktık ki MouseMove olayında il kodunu alabilelim.
Var
Koordinat : TStringList;
xBitmap : TBitmap;
// -----------------------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
VAR
WM : TMetafile;
i : Integer;
ResStream : TResourceStream; // Classes - Resource Stream object
Deger : String;
IlKodu : Integer;
C : TColor;
X,Y : Integer;
begin
Koordinat := TStringList.Create;
Try
ResStream := TResourceStream.Create(HInstance, 'Turkiye', RT_RCDATA);
WM := TMetaFile.Create;
WM.LoadFromStream(ResStream);
xBitmap := TBitmap.Create;
xBitmap.Width := Wm.Width;
xBitmap.Height := wm.Height;
xBitmap.Canvas.StretchDraw(xBitmap.Canvas.ClipRect, Wm);
Image1.Picture.Graphic := xBitmap; // Master
Image2.Picture.Graphic := xBitmap; // Gizli Referans
WM.Free;
ResStream.Free;
ResStream := TResourceStream.Create(HInstance, 'Koordinat', RT_RCDATA);
Koordinat.LoadFromStream(ResStream);
ResStream.Free;
for i := 0 to Koordinat.Count - 1 do begin
// 01.ADANA : 500,393
Deger := Koordinat[i];
IlKodu := StrToInt( Copy(Deger, 1, 2) ); // 01
System.Delete(Deger, 1, Pos(':', Deger) );
X := StrToInt( Trim(Copy(Deger, 1, Pos(',', Deger)-1) ) ); // 500
System.Delete(Deger, 1, Pos(',', Deger) );
Y := StrToInt( Trim(Deger) ); // 393
Image2.Canvas.Brush.Color := RGB( 0+IlKodu, 128, 255);// İl Koduna Göre Kirimzi ekleyerek Mavi derecelendirmesi...
C := Image2.Canvas.Pixels[X,Y];
Image2.Canvas.FloodFill(X, Y, C, fsSurface);
end;
Except
end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
VAR
C : TColor;
R : Word;
begin
C := Image2.Canvas.Pixels[X,Y];
R := GetRValue(C);
if (R < 83) AND (Koordinat.Count > 0)
then Caption := Format( 'Mouse Üzerindeki İlimiz = %s', [ Copy( Koordinat[R-1], 1, Pos(':', Koordinat[R-1]) - 1) ] )
else Caption := '';
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
VAR
C : TColor;
R : Word;
Deger : String;
aX, aY : Integer;
begin
Image1.Picture.Graphic := xBitmap; // Master
C := Image1.Canvas.Pixels[X,Y];
Image1.Canvas.Brush.Color := clLime;
Image1.Canvas.FloodFill(X, Y, C, fsSurface);
C := Image2.Canvas.Pixels[X,Y];
R := GetRValue(C);
if R < 83 then begin
Deger := Koordinat[R-1];
System.Delete(Deger, 1, Pos(':', Deger) );
aX := StrToInt( Trim(Copy(Deger, 1, Pos(',', Deger)-1) ) ); // 500
System.Delete(Deger, 1, Pos(',', Deger) );
aY := StrToInt( Trim(Deger) ); // 393
Image1.Canvas.Brush.Style := bsClear;
Image1.Canvas.TextOut(aX, aY, Copy( Koordinat[R-1], 1, Pos(':', Koordinat[R-1]) - 1));
end;
end;
Kod: Tümünü seç
01.ADANA : 500,393
02.ADIYAMAN : 638,344
03.AFYONKARAHİSAR : 268,282
04.AĞRI : 887,205
05.AMASYA : 504,156
06.ANKARA : 350,203
07.ANTALYA : 306,401
08.ARTVİN : 815,121
09.AYDIN : 114,332
10.BALIKESİR : 116,201
11.BİLECİK : 232,185
12.BİNGÖL : 764,253
13.BİTLİS : 841,288
14.BOLU : 310,161
15.BURDUR : 215,364
16.BURSA : 167,183
17.ÇANAKKALE : 58,175
18.ÇANKIRI : 410,161
19.ÇORUM : 467,160
20.DENİZLİ : 176,335
21.DİYARBAKIR : 746,324
22.EDİRNE : 52,114
23.ELAZIĞ : 702,284
24.ERZİNCAN : 668,225
25.ERZURUM : 811,195
26.ESKİŞEHİR : 270,232
27.GAZİANTEP : 588,390
28.GİRESUN : 643,167
29.GÜMÜŞHANE : 684,180
30.HAKKARİ : 926,352
31.HATAY : 538,430
32.ISPARTA : 272,348
33.MERSİN : 409,420
34.İSTANBUL : 166,111
35.İZMİR : 77,250
36.KARS : 874,171
37.KASTAMONU : 404,96
38.KAYSERİ : 503,296
39.KIRKLARELİ : 101,66
40.KIRŞEHİR : 443,238
41.KOCAELİ : 227,134
42.KONYA : 350,344
43.KÜTAHYA : 196,241
44.MALATYA : 627,291
45.MANİSA : 123,274
46.KAHRAMANMARAŞ : 568,355
47.MARDİN : 763,379
48.MUĞLA : 130,374
49.MUŞ : 818,258
50.NEVŞEHİR : 465,291
51.NİĞDE : 459,327
52.ORDU : 598,154
53.RİZE : 765,133
54.SAKARYA : 249,151
55.SAMSUN : 514,125
56.SİİRT : 830,330
57.SİNOP : 477,88
58.SİVAS : 588,233
59.TEKİRDAĞ : 91,114
60.TOKAT : 551,167
61.TRABZON : 699,144
62.TUNCELİ : 696,251
63.ŞANLI URFA : 671,382
64.UŞAK : 184,291
65.VAN : 920,299
66.YOZGAT : 490,216
67.ZONGULDAK : 320,113
68.AKSARAY : 428,302
69.BAYBURT : 730,178
70.KARAMAN : 378,389
71.KIRIKKALE : 414,217
72.BATMAN : 800,307
73.ŞIRNAK : 841,364
74.BARTIN : 359,94
75.ARDAHAN : 864,114
76.IĞDIR : 928,189
77.YALOVA : 180,153
78.KARABÜK : 365,130
79.KİLİS : 571,413
80.OSMANİYE : 532,389
81.DÜZCE : 290,137
82.Kıbrıs : 404, 512
Kod: Tümünü seç
procedure TForm1.Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if image2.Canvas.Pixels[x,y]=rgb(175,175,255) then
label1.Caption:='edirne';
if image2.Canvas.Pixels[x,y]=rgb(175,175,254) then
label1.Caption:='kırklareli';
if image2.Canvas.Pixels[x,y]=rgb(175,175,253) then
label1.Caption:='tekirdağ';
if image2.Canvas.Pixels[x,y]=rgb(174,175,252) then
label1.Caption:='Uşak';