Tuesday, August 5, 2014

Passing a Form to a function C# .Net

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    class Class1
    {


        public static void GetForm(Form frm)
        {
            frm.Text = "Satsara";
        }


        public static void SetLabel(Form frm, string lng)
        {
            string ename = "Name";
            string bname = "Nama";
            string name;
            if (lng == "EN")
            {
                name = ename;
            }
            else
                name = bname;

            Control ctn = frm.Controls["lblName"];
            ctn.Text = name;
        }

    }
}

calling the method

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Class1.GetForm(this);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Class1.SetLabel(this, "EN");
        }

        private void button2_Click(object sender, EventArgs e)
        {

            Class1.SetLabel(this, "BA");
        }
    }

Find component by Name in C#

        string ename = "Name";
        string bname = "Nama";

        private void button1_Click(object sender, EventArgs e)
        {

          Control ctn = this.Controls["lblName"];
           ctn.Text = ename;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Control ctn = this.Controls["lblName"];
            ctn.Text = bname;
        }
}

Sunday, August 3, 2014

HTTP Error 404.3 - Not Found/ Web service problems


HTTP Error 404.3 - Not Found


 The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.



Open Control Panel

  Programs\Turn Windows Features on or off

    Internet Information Services

      World Wide Web Services

        Application development Features

          ASP.Net <-- check mark here



Then run the “C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe” in CMD admin mode

 

C:\> C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis –ir

C:\> C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis -i

Thursday, July 10, 2014

Disabling Auto completion in Windows mobile 6.5 Using CERegeditor

Install the CERegeditor to your machine Run the application

1. Connect the device to the PC

2. Press Connection --> Connect (F1) ' Loading all the device related Registry's

3. Select "HKEY_CURRENT_USER\ControlPanel\Sip" 

4. Change the SuggWords value 4 into 0 

5. File --> Save



Thursday, June 12, 2014

Allowing only 0-9 values + Back button only (C#, Windows mobile 6.5)

        Handling Numeric fields, Allowing only 0-9 values + Back button only. 

       //Sample Text box.

        private void textBoxLongStalk_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = (Utility.KeyPress(sender, e) == false) ? true : false;
        }


         //Common function to handle numeric only restriction
        public static Boolean KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar >= (char)Keys.D0 && e.KeyChar <= (char)Keys.D9) || (e.KeyChar ==                                                                                                                                                       (char)Keys.Back))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

Sender Parameter/ Common functions (C#)

Common text box validation function for all the text boxes within the same form.
Using Sender parameter to handle.   

   private void textBoxLongStalk_Validating(object sender, CancelEventArgs e)
        {
            TextBox txt = sender as TextBox;

            if (txt.Text != string.Empty)
            {
                if (isNumaric(txt) == false)
                {
                    e.Cancel = true;
                    txt.Select(0, txt.Text.Length);
                    numaricError(txt);
                }

                if (isGraterThanSampleSize(txt) == true)
                {
                    e.Cancel = true;
                    txt.Select(0, txt.Text.Length);
                    greaterThanSampleSizeError(txt);
                }

                displayRemainingBunchCount();
            }

        }

Wednesday, June 11, 2014

Dynamically Creating Components in a Page Controller to another Page controller (Delphi)

This function can duplicate a Page controller into another given Page controller. I am using this for to create a search Panel.

DBEdit into a Text Box,

wwDBComboBox into the same type

User should have to set the main page controller component tag field accordingly.


Ex:

DBEdit1.tag := 21; mean, Type is Integer and component type is Text Box

Tags --> first 1 to 9 Database Types

1 --> text
2 --> Numeric
3 --> DateTime

Second 1 to 9 Component Type
1 --> TextBox
2 --> Combo Box
3 --> List Box
4 --> DateTimePicker
5 --> CheckBox

6 --> Option Button

With this sample, as a param user sending  and the 

  Current form using, Parent Page controller, Child Page controller. 

Function will create all the Pagetabs in the Parent page controller in to the Child page controller. 

Searching all the controllers which tag is > 0 (Need to be in the search panel) and create under the child page controller

procedure CreateSearchPanel(form :Tform; sht, shp :TPageControl);
var
   txt : TEdit;
   mem : TMemo;
   cmb : TwwDBLookupCombo;
   dtm : TwwDBDateTimePicker;
   chk : TCheckBox;
   i, j, k, iComp : Integer;
   tab :TTabSheet;
   Noti : TNotifyEvent;
   // M: TMethod;
Begin

    i := sht.PageCount -1;
    for k := 0 to i do
    Begin
        iComp := sht.Pages[k].ControlCount - 1;
        tab := TTabSheet.Create(form);
        tab.Visible := True;
        tab.Name := '_' + sht.Pages[k].name;
        tab.Top := sht.Pages[k].Top;
        tab.Left := sht.Pages[k].Left;
        tab.Height := sht.Pages[k].Height;
        tab.Width := sht.Pages[k].Width;
        tab.Caption := sht.Pages[k].Caption;
        tab.tag :=  99;
        tab.PageControl := shp;
        tab.Font.Color := sht.pages[k].font.Color;//clBlue;

        for j := 0 to iComp do
        Begin
              if (strToInt((copy(intToStr(sht.Pages[k].controls[j].Tag),1,1))) >=1) and (strToInt((copy(intToStr(sht.Pages[k].controls[j].Tag),1,1))) <=9) then
              Begin
                 CASE strToInt((copy(intToStr(sht.Pages[k].controls[j].Tag),2,1))) of
                   1:
                   Begin
                 
                        txt := TEdit.Create(form);

//                        txt.Name :=  '_' + TDBEdit(sht.Pages[k].controls[j]).Name;
                        if Trim(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1)) = '' then
                                txt.Name :=  '_' + TDBEdit(sht.Pages[k].controls[j]).DataField
                        else
                                txt.Name := '_' + GetComponentFieldName(sht.Pages[k].controls[j],StrToInt(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1)),true);
                        txt.font :=  TDBEdit(sht.Pages[k].controls[j]).font;
                        txt.Top :=  TDBEdit(sht.Pages[k].controls[j]).Top;
                        txt.Left :=  TDBEdit(sht.Pages[k].controls[j]).Left;
                        txt.Width := TDBEdit(sht.Pages[k].controls[j]).Width;
                        txt.Height := TDBEdit(sht.Pages[k].controls[j]).Height;
                        txt.Visible := True;
                        txt.Tag := TDBEdit(sht.Pages[k].controls[j]).Tag;
                        tab.InsertControl(txt);
                        txt.Text := '';
//                        TDBEdit(sht.Pages[k].controls[j]).DataSource.DataSet.FieldByName(TDBEdit(sht.Pages[k].controls[j]).DataField).DisplayName;
                        txt.PopupMenu := TPopupMenu(form.FindComponent('PopupMenu1'));
                        {M.Data := nil;
                        M.Code := @EditBoxEnterHandler;
                        txt.OnExit := TNotifyEvent(M); }

                        if Trim(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1)) = '' then
                           SetLabel(form, sht.Pages[k], tab, TDBEdit(sht.Pages[k].controls[j]).DataSource.DataSet.FieldByName(TDBEdit(sht.Pages[k].controls[j]).DataField).DisplayLabel )
                        else
                           SetLabel(form, sht.Pages[k], tab, GetComponentFieldName(sht.Pages[k].controls[j],StrToInt(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1))));
                        //SetLabel(form, sht.Pages[k], tab, txt.Name );
                        //CreateSQLLabels(form, tab, txt.name, txt.Top, txt.Left, txt.width, txt.height);

                   end;
                   2:
                   Begin

                        cmb := TwwDBLookupCombo.Create(form);
                        tab.InsertControl(cmb);
                        if Trim(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1)) = '' then
                                cmb.Name :=  '_' + TwwDBLookupCombo(sht.Pages[k].controls[j]).DataField
                        else
                                cmb.Name :=  '_' + '_' + GetComponentFieldName(sht.Pages[k].controls[j],StrToInt(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1)),true);
                             
                        cmb.Font :=  TwwDBLookupCombo(sht.Pages[k].controls[j]).Font;
                        cmb.Top :=  TwwDBLookupCombo(sht.Pages[k].controls[j]).Top;
                        cmb.Left :=  TwwDBLookupCombo(sht.Pages[k].controls[j]).Left;
                        cmb.Width := TwwDBLookupCombo(sht.Pages[k].controls[j]).Width;
                        cmb.Height := TwwDBLookupCombo(sht.Pages[k].controls[j]).Height;
                        cmb.LookupTable   := TwwDBLookupCombo(sht.Pages[k].controls[j]).LookupTable;
                        cmb.LookupField    := TwwDBLookupCombo(sht.Pages[k].controls[j]).LookupField;
                        //cmb.KeyField    := TwwDBLookupCombo(sht.Pages[k].controls[j]).KeyField;
                        cmb.Selected := TwwDBLookupCombo(sht.Pages[k].controls[j]).Selected;
                        cmb.Height := TwwDBLookupCombo(sht.Pages[k].controls[j]).Height;
                        cmb.Options := TwwDBLookupCombo(sht.Pages[k].controls[j]).Options;
                        cmb.Visible := True;
                        cmb.PopupMenu := TPopupMenu(form.FindComponent('PopupMenu1'));
                        cmb.Tag := TwwDBLookupCombo(sht.Pages[k].controls[j]).Tag;
                        cmb.Text := '';
//                        SetLabel(form, sht.Pages[k], tab, cmb.name);
                        if Trim(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1)) = '' then
                           SetLabel(form, sht.Pages[k], tab, TwwDBLookupCombo(sht.Pages[k].controls[j]).DataSource.DataSet.FieldByName(TwwDBLookupCombo(sht.Pages[k].controls[j]).DataField).DisplayLabel )
                        else
                           SetLabel(form, sht.Pages[k], tab, GetComponentFieldName(sht.Pages[k].controls[j],StrToInt(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1))));

//                        CreateSQLLabels(form, tab, cmb.name, cmb.Top, cmb.Left, cmb.width, cmb.height);

                   end;
                   3:
                   Begin

                        dtm := TwwDBDateTimePicker.Create(form);
                        tab.InsertControl(dtm);
                        dtm.Name :=  '_' + TwwDBDateTimePicker(sht.Pages[k].controls[j]).DataField;;
                        dtm.Font :=  TwwDBDateTimePicker(sht.Pages[k].controls[j]).Font;
                        dtm.Top :=  TwwDBDateTimePicker(sht.Pages[k].controls[j]).Top;
                        dtm.Left :=  TwwDBDateTimePicker(sht.Pages[k].controls[j]).Left;
                        dtm.Width := TwwDBDateTimePicker(sht.Pages[k].controls[j]).Width;
                        dtm.Height := TwwDBDateTimePicker(sht.Pages[k].controls[j]).Height;
                        dtm.Height := TwwDBDateTimePicker(sht.Pages[k].controls[j]).Height;
                        dtm.Visible := True;
                        dtm.Tag := TwwDBDateTimePicker(sht.Pages[k].controls[j]).Tag;
                        dtm.Text := '';

                        if Trim(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1)) = '' then
                           SetLabel(form, sht.Pages[k], tab, TwwDBDateTimePicker(sht.Pages[k].controls[j]).DataSource.DataSet.FieldByName(TwwDBDateTimePicker(sht.Pages[k].controls[j]).DataField).DisplayLabel )
                        else
                           SetLabel(form, sht.Pages[k], tab, GetComponentFieldName(sht.Pages[k].controls[j],StrToInt(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1))));

                       // SetLabel(form, sht.Pages[k], tab, dtm.Name);
                     
                       // CreateSQLLabels(form, tab, dtm.name, dtm.Top, dtm.Left, dtm.width, dtm.height);
                     
                   end;
                   4:
                   Begin
                 
                        mem := TMemo.Create(form);
                        mem.Name :=  '_' + TDBMemo(sht.Pages[k].controls[j]).DataField;;
                        mem.Font :=  TDBMemo(sht.Pages[k].controls[j]).Font;
                        mem.Top :=  TDBMemo(sht.Pages[k].controls[j]).Top;
                        mem.Left :=  TDBMemo(sht.Pages[k].controls[j]).Left;
                        mem.Width := TDBMemo(sht.Pages[k].controls[j]).Width;
                        mem.Height := TDBMemo(sht.Pages[k].controls[j]).Height;
                        mem.Visible := True;
                        mem.Tag := TDBMemo(sht.Pages[k].controls[j]).Tag;
                        tab.InsertControl(mem);
                        mem.Text := '';
//                        TDBEdit(sht.Pages[k].controls[j]).DataSource.DataSet.FieldByName(TDBEdit(sht.Pages[k].controls[j]).DataField).DisplayName;
                        mem.PopupMenu := TPopupMenu(form.FindComponent('PopupMenu1'));
                        SetLabel(form, sht.Pages[k], tab, TDBMemo(sht.Pages[k].controls[j]).DataSource.DataSet.FieldByName(TDBMemo(sht.Pages[k].controls[j]).DataField).DisplayLabel );
                        //SetLabel(form, sht.Pages[k], tab, txt.Name );
                       // CreateSQLLabels(form, tab, txt.name, txt.Top, txt.Left, txt.width, txt.height);

                   end;
                  5:
                   Begin
                        chk := TCheckbox.Create(form);
                        chk.Name :=  '_' + TDBCheckbox(sht.Pages[k].controls[j]).DataField;
                        chk.Font :=  TDBCheckbox(sht.Pages[k].controls[j]).Font;
                        chk.Top :=  TDBCheckbox(sht.Pages[k].controls[j]).Top;
                        chk.Left :=  TDBCheckbox(sht.Pages[k].controls[j]).Left;
                        chk.Width := TDBCheckbox(sht.Pages[k].controls[j]).Width;
                        chk.Height := TDBCheckbox(sht.Pages[k].controls[j]).Height;
                        chk.Visible := True;
                        chk.Tag := TDBCheckbox(sht.Pages[k].controls[j]).Tag;
                        tab.InsertControl(chk);
                        chk.Enabled := True;
                        chk.Checked := False;
                        chk.Alignment := TDBCheckbox(sht.Pages[k].controls[j]).Alignment;
//                        TDBEdit(sht.Pages[k].controls[j]).DataSource.DataSet.FieldByName(TDBEdit(sht.Pages[k].controls[j]).DataField).DisplayName;
                        chk.PopupMenu := TPopupMenu(form.FindComponent('PopupMenu1'));
                        if TDBCheckbox(sht.Pages[k].controls[j]).Caption <> '' then
                        Begin
                             chk.Caption := TDBCheckbox(sht.Pages[k].controls[j]).caption;
                        end else
                        Begin
                                chk.Caption := '';

                                if Trim(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1)) = '' then
                                   SetLabel(form, sht.Pages[k], tab, TDBCheckBox(sht.Pages[k].controls[j]).DataSource.DataSet.FieldByName(TDBCheckBox(sht.Pages[k].controls[j]).DataField).DisplayLabel )
                                else
                                   SetLabel(form, sht.Pages[k], tab, GetComponentFieldName(sht.Pages[k].controls[j],StrToInt(copy(intToStr(sht.Pages[k].controls[j].Tag),3,1))));

                        end;

                       // SetLabel(form, tab, chk.Name);
                       // CreateSQLLabels(form, tab, chk.name, chk.Top, chk.Left, chk.width, chk.height);
                     
                   end;  
                 end;
              end;
        end;
     end;

end;

Version Info for Splash Screens (Delphi)

uses
   SysUtils,  ImageHlp;

function GetAppVersionStr: string;

function TformSpalsh.GetAppVersionStr: string;
var
  Exe: string;
  Size, Handle: DWORD;
  Buffer: TBytes;
  FixedPtr: PVSFixedFileInfo;
begin
  Exe := ParamStr(0);
  Size := GetFileVersionInfoSize(PChar(Exe), Handle);
  if Size = 0 then
    RaiseLastOSError;
  SetLength(Buffer, Size);
  if not GetFileVersionInfo(PChar(Exe), Handle, Size, Buffer) then
    RaiseLastOSError;
  if not VerQueryValue(Buffer, '\', Pointer(FixedPtr), Size) then
    RaiseLastOSError;
  Result := Format('%d.%d.%d.%d',
    [LongRec(FixedPtr.dwFileVersionMS).Hi,  //major
     LongRec(FixedPtr.dwFileVersionMS).Lo,  //minor
     LongRec(FixedPtr.dwFileVersionLS).Hi,  //release
     LongRec(FixedPtr.dwFileVersionLS).Lo]) //build
end;

procedure TformSpalsh.FormCreate(Sender: TObject);
var
  Rec: LongRec;
  fileDate : Integer;
begin
  fileDate := FileAge('E_MultiDrugs.exe');
  Label1.Caption :=  DateToStr(FileDateToDateTime(fileDate));
  Label2.Caption := GetAppVersionStr();
end;


Postgress - Read a XML file from a postgress table XML column

SELECT xmltable.* FROM xmldata, XMLTABLE('//ROWS/ROW' PASSING data COLUMNS id int PATH ...