Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Konum servisi
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

Konum servisi

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
bedir_agdemir Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 11 Ağustos 2025
Konum: Stajyer
Durum: Aktif Değil
Puanlar: 5
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı bedir_agdemir Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Konum servisi
    Gönderim Zamanı: 15 Ağustos 2025 Saat 17:20

var
konumZamanlayici: TclTimer;
gecenSure: Integer;

void konumuKontrolEt;
var
enlem, boylam: String;
konumListesi: TclStringList;
konumDegeri: String;
{
gecenSure = gecenSure + 1;
konumDegeri = Clomosy.LocationValue;
if ((konumDegeri <> '0|0') && (konumDegeri <> ''))
{
  konumZamanlayici.Enabled = False;
  konumZamanlayici.Free;
  enlem = clGetStringTo(konumDegeri, '|'); 
  boylam = clGetStringAfter(konumDegeri, '|'); 
  konumListesi = Clomosy.StringListNew;
  konumListesi.Add(enlem);
  konumListesi.Add(boylam);
  Clomosy.GlobalVariableStringList = konumListesi; 
  TclProLabel(CallerForm.clFindComponent('sonucLabel')).Caption = 'Konum Bulundu: ' + enlem + ', ' + boylam;

}
else if (gecenSure > 30)
{
  konumZamanlayici.Enabled = False;
  konumZamanlayici.Free;
  TclProLabel(CallerForm.clFindComponent('sonucLabel')).Caption = 'Konum alınamadı (zaman aşımı).';
}
else
{
  TclProLabel(CallerForm.clFindComponent('sonucLabel')).Caption = 'GPS sinyali aranıyor... (' + IntToStr(gecenSure) + 'sn)';
}
}
{
gecenSure = 0;
TclProLabel(CallerForm.clFindComponent('sonucLabel')).Caption = 'GPS sinyali aranıyor...';
Clomosy.GetCurrentLocation; 
konumZamanlayici = CallerForm.AddNewTimer(CallerForm, 'konumZamanlayici', 1000);
konumZamanlayici.Enabled = True; 
CallerForm.AddNewEvent(konumZamanlayici, tbeOnTimer, 'konumuKontrolEt');
}
kodumda 30 saniye süre içinde konum çekmek istiyorum fakat hem mobilde hem pc de konum verileri gelmiyor. 

Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif Değil
Puanlar: 249
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 18 Ağustos 2025 Saat 18:11
Merhaba Bedir, 
Bir örnek yaptım konumla ilgili inceler misin? 

var
  MyForm: TclForm;
  btnKonumAl: TclProButton;
  lblSonuc: TclProLabel;
  lblBaslik: TclProLabel;
  
  latitude: String;
  longitude: String;
  konum: String;
  konumDegeri: String;
  btnBasitKonum: TclProButton;
  konumTimer: TclTimer;
  konumBekleniyor: Boolean;
  denemeSayisi: Integer;

void KonumKontrolEt
{
  if (not konumBekleniyor)
  
  denemeSayisi = denemeSayisi + 1;
  konumDegeri = Clomosy.LocationValue;
  
  // Debug bilgisi
  lblSonuc.Text = '🔍 Konum Aranıyor... (' + IntToStr(denemeSayisi) + 'sn)' + #13#10 +
                  'Konum Değeri: "' + konumDegeri + '"';
  
  // Konum alındı mı kontrol et
  if ((konumDegeri <> '0|0') && (konumDegeri <> '') && (Length(konumDegeri) > 3)) {
    // Konum başarıyla alındı
    konumBekleniyor = False;
    konumTimer.Enabled = False;
    
    // Konum değerini parse et
    latitude = clGetStringTo(konumDegeri, '|');
    longitude = clGetStringAfter(konumDegeri, '|');
    konum = latitude + '|' + longitude;
    
    // Sonucu göster
    lblSonuc.Text = '✅ Konum Başarıyla Alındı!' + #13#10 +
                    'Enlem: ' + latitude + #13#10 +
                    'Boylam: ' + longitude + #13#10 +
                    'Tam Konum: ' + konum + #13#10 +
                    'Süre: ' + IntToStr(denemeSayisi) + ' saniye';
    
    ShowMessage('📍 Konum başarıyla alındı!' + #13#10 + 
               'Enlem: ' + latitude + #13#10 + 
               'Boylam: ' + longitude);
               
  } else if (denemeSayisi >= 30) {
    // Zaman aşımı
    konumBekleniyor = False;
    konumTimer.Enabled = False;
    
    lblSonuc.Text = '⏰ Konum alınamadı (zaman aşımı)' + #13#10 +
                    'Lütfen GPS ayarlarınızı kontrol edin ve tekrar deneyin.';
    
    ShowMessage('❌ Konum alınamadı! Zaman aşımı.' + #13#10 + 
               'GPS ayarlarınızı kontrol edin.');
  }
}

void KonumAlClicked
{
  try {
    // Önceki timer'ı temizle
    if (Assigned(konumTimer)) {
      konumTimer.Enabled = False;
      konumTimer.Free;
    }
    
    // Değişkenleri sıfırla
    denemeSayisi = 0;
    konumBekleniyor = True;
    
    // Başlangıç mesajı
    lblSonuc.Text = '🔍 GPS Sinyali Aranıyor...' + #13#10 +
                    'Lütfen bekleyin...';
    
    // Konum isteği gönder
    Clomosy.GetCurrentLocation;
    
    // Timer oluştur (her 1 saniyede bir kontrol et)
    konumTimer = MyForm.AddNewTimer(MyForm, 'konumTimer', 1000);
    konumTimer.Enabled = True;
    
    // Event'i ekle
    MyForm.AddNewEvent(konumTimer, tbeOnTimer, 'KonumKontrolEt');
    
    ShowMessage('📍 Konum isteği gönderildi!' + #13#10 + 
               'GPS sinyali aranıyor... Lütfen bekleyin.');
               
  } except 
    lblSonuc.Text = '❌ Konum isteği gönderilemedi: ' + LastExceptionMessage;
    ShowMessage('Hata: ' + LastExceptionMessage);
  }
}

void KonumGirisClicked
{
  try {
    Clomosy.GetCurrentLocation;
    
    
    // Konum değerini al
    konumDegeri = Clomosy.LocationValue;
    
    // Debug bilgisi
    lblSonuc.Text = '🔍 Basit Konum Alma:' + #13#10 +
                    'Ham Konum: "' + konumDegeri + '"' + #13#10 +
                    'Uzunluk: ' + IntToStr(Length(konumDegeri));
    
    // Konum alındı mı kontrol et
    if ((konumDegeri <> '0|0') && (konumDegeri <> '') && (Length(konumDegeri) > 3)) {
      // Konum parse et
      latitude = clGetStringTo(konumDegeri, '|');
      longitude = clGetStringAfter(konumDegeri, '|');
      
      lblSonuc.Text = '✅ Basit Konum Alındı!' + #13#10 +
                      'Enlem: ' + latitude + #13#10 +
                      'Boylam: ' + longitude + #13#10 +
                      'Ham Veri: ' + konumDegeri;
      
      ShowMessage('📍 Basit konum alındı!' + #13#10 + 
                 'Enlem: ' + latitude + #13#10 + 
                 'Boylam: ' + longitude);
    } else {
      lblSonuc.Text = '❌ Konum alınamadı!' + #13#10 +
                      'Ham Veri: "' + konumDegeri + '"' + #13#10 +
                      'Lütfen GPS ayarlarınızı kontrol edin.';
      
      ShowMessage('❌ Konum alınamadı!' + #13#10 + 
                 'Ham veri: ' + konumDegeri);
    }
    
  } except 
    lblSonuc.Text = '❌ Hata: ' + LastExceptionMessage;
    ShowMessage('Hata: ' + LastExceptionMessage);
  }
}

void FormKapatildi
{
  // Timer'ı temizle
  if (Assigned(konumTimer)) {
    konumTimer.Enabled = False;
    konumTimer.Free;
  }
}

{
  MyForm = TclForm.Create(Self);
  MyForm.clSetWindowState(fwsMaximized);
  
  // Başlık
  lblBaslik = MyForm.AddNewProLabel(MyForm, 'lblBaslik', '📍 Basit Konum Servisi');
  lblBaslik.Align = alTop;
  lblBaslik.Height = 60;
  lblBaslik.Margins.Top = 20;
  lblBaslik.Margins.Left = 20;
  lblBaslik.Margins.Right = 20;
  lblBaslik.clProSettings.FontSize = 24;
  lblBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  lblBaslik.clProSettings.TextSettings.Font.Style = [fsBold];
  lblBaslik.clProSettings.FontHorzAlign = palCenter;
  lblBaslik.clProSettings.FontVertAlign = palCenter;
  lblBaslik.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#000000');
  lblBaslik.clProSettings.BorderColor = clAlphaColor.clHexToColor('#ffffff');
  lblBaslik.clProSettings.BorderWidth = 2;
  lblBaslik.clProSettings.RoundHeight = 30;
  lblBaslik.clProSettings.RoundWidth = 30;
  lblBaslik.SetclProSettings(lblBaslik.clProSettings);
  
  // Konum al butonu (Timer ile)
  btnKonumAl = MyForm.AddNewProButton(MyForm, 'btnKonumAl', '📍 Timer ile Konum Al');
  btnKonumAl.Align = alTop;
  btnKonumAl.Height = 60;
  btnKonumAl.Margins.Top = 30;
  btnKonumAl.Margins.Left = 50;
  btnKonumAl.Margins.Right = 50;
  btnKonumAl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#007bff');
  btnKonumAl.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  btnKonumAl.clProSettings.FontSize = 20;
  btnKonumAl.clProSettings.IsRound = True;
  btnKonumAl.clProSettings.RoundHeight = 30;
  btnKonumAl.clProSettings.RoundWidth = 30;
  btnKonumAl.SetclProSettings(btnKonumAl.clProSettings);
  
  // Basit konum butonu
 
  btnBasitKonum = MyForm.AddNewProButton(MyForm, 'btnBasitKonum', '📍 Basit Konum Al');
  btnBasitKonum.Align = alTop;
  btnBasitKonum.Height = 60;
  btnBasitKonum.Margins.Top = 15;
  btnBasitKonum.Margins.Left = 50;
  btnBasitKonum.Margins.Right = 50;
  btnBasitKonum.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#28a745');
  btnBasitKonum.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  btnBasitKonum.clProSettings.FontSize = 20;
  btnBasitKonum.clProSettings.IsRound = True;
  btnBasitKonum.clProSettings.RoundHeight = 30;
  btnBasitKonum.clProSettings.RoundWidth = 30;
  btnBasitKonum.SetclProSettings(btnBasitKonum.clProSettings);
  
  // Sonuç etiketi
  lblSonuc = MyForm.AddNewProLabel(MyForm, 'lblSonuc', 'Konum almak için butona tıklayın.');
  lblSonuc.Align = alTop;
  lblSonuc.Height = 150;
  lblSonuc.Margins.Top = 30;
  lblSonuc.Margins.Left = 30;
  lblSonuc.Margins.Right = 30;
  lblSonuc.clProSettings.FontSize = 16;
  lblSonuc.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  lblSonuc.clProSettings.FontHorzAlign = palCenter;
  lblSonuc.clProSettings.FontVertAlign = palCenter;
  lblSonuc.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#000000');
  lblSonuc.clProSettings.BorderColor = clAlphaColor.clHexToColor('#ffffff');
  lblSonuc.clProSettings.BorderWidth = 2;
  lblSonuc.clProSettings.RoundHeight = 20;
  lblSonuc.clProSettings.RoundWidth = 20;
  lblSonuc.SetclProSettings(lblSonuc.clProSettings);
  
  // Event'leri ekle
  MyForm.AddNewEvent(btnKonumAl, tbeOnClick, 'KonumAlClicked');
  MyForm.AddNewEvent(btnBasitKonum, tbeOnClick, 'KonumGirisClicked');
  MyForm.AddNewEvent(MyForm, tbeOnFormClose, 'FormKapatildi');
  
  MyForm.Run;
}
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,046 Saniyede Yüklendi.