dAhA kArAr vErMeDiM

Çarşamba, Mayıs 24, 2006 - Web ve Windowsu Çorba Yapalım

Kategori: KOD BANKASI
    Bundan bir kaç yıl önce henüz piyasada .NET FRAME WORK diye bir kavram yokken, yada kaba inşaatının temelleri daha yeni atılırken el oğlu windows gibi ileri zekalı bir işletim sistemi uygulamasıyla web sayfalarını konuşturuyordu. Hepimiz Windows'un ne kadar ileri zekalı olduğunu biliyoruz değil mi ?

    İşte o dönemlerde tamda şu sitede bana hilkat garibesi gibi görünen bir bileşen geçti elime. Ben ki delphi ile ISAPI/CGI uygulamaları konusunda tecrübe sahibiyken, kendimi web ve ileri zekalı windows grusu olarak görürken birden bire sönüverdim. İlk defa bu dünyada benden daha iyi yazılımcılar olduğunu kabul etmek zorunda kaldım. (Marco Cantu, Dr.Bob, ve Charlie Calvert gibi muhteremlere bile onların kitapları üstüne ders verebilirim sanıyordum. Gençlik işte. İnsan gençken fazla  uçup enginlere açılabiliyor. )

    Neyse işte bu mevzuya konu olan bileşenden önce çarli ve marko amcaların bir kaç yöntemi üzerine kurulu standart notasyona sahip kodcuklarım vardı. Bu satırları yazarken arada birde bu bileşenin bir yerlerini mıncıklamış mıyım diye bakındım ama nafile. Elimi bile sürmemişim.

    Hani vardır ya şu başlayıpta bitiremediğimiz, bitirmediğimiz, bitirtilmeyen projeler. İşte o projelerden birinde almışım bir şeyler karalamışım bu bahse konu bileşene dayalı. Sanki köşe yazarıyımda. Bu yarım kalmış projenin adı "Borç Takma Bana Yakalarsam  Bende  Takarım Sana".

"Borç Takma Bana Yakalarsam Bende Takarım Sana"  Üzerine Bir Kaç Satır

    Bir dönem malüm memleketin durumu vahim. Batık ve hortumlanmış bankalar, develi üsyon, dolarım aldı gitti başını gelmedi geri, mark in aşağı ne işin var orda krizinin bini bir para. Borç takan takana. Esnaf kan ağlıyor. Benim gibi devletinin bekası için çalışan biride en çulsuz zamanlarında. (Hoş hala çulsuzum ya neyse )  Biz kendi halinde bir kaç arkadaş iş yapacak proje arıyoruz kendimize eli boşluktan. Biri dediki :

    - "Benim kafamda bir iş var, daha doğrusu bu iş geçen yıl kağıt kürekle yapılmaya kalkıldıda sonra vazcayılan işler sepetine kondu". Tabii hepimiz merakla dinliyoruz. Muhterem devam etti.

    - "Bu esnaf var ya. Bugünlerde kime güvenip mal satacağını bilemiyor. kendi aralarında faxla, telefonla müşteri hakkında İSTİHBARAT yapıyor. Tabii buda hem zaman alıcı hem masraflı ve katmerli. Bu işi web'e taşısak çookkk para toplarız". Biz ancak nal toplarız ya neyse uyduk bir kere şeytana. Ekip koptu, ekipte en deneyimli ve en çulsuz ben olduğumdan ben projeyi çaktırmadan gerçekleştirmeye karar verdim. İşte o projeden satır başları.

ENTRECARD İSTİHBARAT HİZMETLERİ:

    Proje iki ayaklı çalışacaktı. Hep öyle olmaz mı? Bir ucu www'de bir ucu kullanıcıda. Kullanıcı www'ye bağlı olsada olmasada müşteriyle ilgili varsa veriye erişecekti.Birde www'si veya bilgiyi satan aleti olmayan esnafada kağıt posta ve aylık dergiyle verilecekti. Ne bilgisi mi? Kim kime ne zaman nasıl borç takmış bilgisi. Her neyse uzun süre gözümü para hırsı bürümüş vaziyette gömüldüm kodların arasına. Sizi bilmem ama ben güzel ve iyi yazılmış bir kod görürsem bir ressamın şaheserini seyreder gibi, bir müzisyenin eşsiz melodisini dinler gibi uzun uzun seyreylerim ve bunu yapan ustanın o anki şuursal halini hayal ederim. Kötü kod gördümü yada yazdımı, işin içinden çıkamayıncada basarım yaygarayı. Godumun godu.

    İşte yazının sonunda açıklayacağım sebeplerden dolayı yarım kalan bu projede adı geçen kodcuklarımdan alıntılar.


Procedure wb_PostDataSubmit(Webbrowser : TWebBrowser;Url,EncodedDataString: string);
 Var
   PostData: OleVariant;
   Headers: OleVariant;
   I: Integer;
   PriorityClass, Priority: Integer;
Begin
  try
    PriorityClass := GetPriorityClass(GetCurrentProcess);
    Priority := GetThreadPriority(GetCurrentThread);

    SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
    SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
    Sleep(10);

    PostData := VarArrayCreate([0, Length(EncodedDataString) - 1], varByte);
    for I := 1 to Length(EncodedDataString) do
      PostData[I-1] := Ord(EncodedDataString[I]);
    Headers := 'Content-Type: application/x-www-form-urlencoded' + #10#13;
    WebBrowser.Navigate(Url,EmptyParam,EmptyParam,PostData,Headers);
  finally
    SetThreadPriority(GetCurrentThread, Priority);
    SetPriorityClass(GetCurrentProcess, PriorityClass);
  end;
End;{* wb_PostDataSubmit *}

Procedure TMainForm.SubmitPostData(Const DataSet : TDataSet);
var
  PostDataString: String;
Begin
  PostDataString := wb_TablodanHtmlPostTagYarat(DataSet);
  //Yeni kayıt ekleme işlemiyse
  if DataSet.FieldByName('SONISLEM').AsInteger = 0 then
    wb_PostDataSubmit(Form_Web.WebBrowser1, _InsertIstihbarat_Url,PostDataString)
  else
  //kayıtta değişiklik yapılmışsa...
    wb_PostDataSubmit(Form_Web.WebBrowser1, _UpdateIstihbarat_Url,PostDataString);
End;//*
SubmitPostData *//

procedure TForm_TumunuAl.HTTPGet1DoneString(Sender: TObject;Result: String);
begin
  {
    Züper bir bileşen
    verilen url adresinden dönen karakter dizisini okuyor...
  }
  //Başlangıç satır işareti yoksa sorun var demektir...
  if Copy(Result,1,1) <> '<' then
  begin
    Label1.Caption := Result;
    Application.MessageBox(Pchar(Result),'Güncelle',mb_iconinformation);
  end else
  begin
    Label1.Caption := 'Veriler Alındı...';
    VeriFormatla(Result);
    Application.MessageBox(Pchar('Toplam '+IntToStr(KayitSayisi)+' Kayıt Kontrol Edildi!...'+InttoStr(AlinanKayit)+' Kayıt Alındı...'),'Güncelle',mb_iconinformation);
    dm.qry_Istihbarat.Active := False;
    dm.qry_Istihbarat.Active := True;
  end;
  Close;
end;

procedure TForm_TumunuAl.btnGuncelleClick(Sender: TObject);
begin
  cxProgressBar1.Position := 0;
  Label1.Caption          := 'Bağlanıyor...';
  HttpGet1.URL            := _IstihbaratTumunuAl_Url+'?tcno='+dm.TCno;
  HttpGet1.GetString;
end;


    Neyse ilginizi çekmesi için koydum bunları. Tamamı için buraya tıkalayıp indirin sizin olsun, benim .NET'im ve Bankam var. Her ne kadar batık olsada daha taptaze daha hiç el sürülmemiş.

    Kodları satır satır yorumlamak ve anlatmak isterdim ama buna zamanım ve sabrım yok. bu nedenle takıldığınız yer olursa sorun oraları deşelim.

    Proje neden devam etmedi. Bir sürü sebebi var. Ama bunların içinde en önemlisi sanırım kimsenin ahını almak istemedim. Buna birde tembellik eklenince vazgeçtim. Tüm bunları sizinle paylaştım, Çünki yazılımcıları çok seviyorum. Akıllı insanlar. Kendinize iyi davranın, bolca hoşça vakit geçirin.

EkleBunu Sosyal Paylaşım Butonu
Yorum yaz!

<- Son Sayfa :: Sonraki Sayfa ->

Hakkımda

Ah bir öğrensem şu bilgisayar işini. Bırakıp gideceğim bu yerleri bu işleri.

Bağlantılar

Ana Sayfa
Profilim
Arşiv
Arkadaşlarım
e-posta

Kategoriler

Arkadaşlarım