یادداشت های برنامه نویس

تجربیات و سورس کدهای رایگان در زمینه برنامه نویسی دلفی و دیتابیس ها

یادداشت های برنامه نویس

تجربیات و سورس کدهای رایگان در زمینه برنامه نویسی دلفی و دیتابیس ها

ایجاد حاشیه در memo

var Rect: TRect;
begin
  SendMessage( Memo1.Handle, EM_GETRECT, 0, LongInt(@Rect));
  Rect.Left:= 20;
  SendMessage(Memo1.Handle, EM_SETRECT, 0, LongInt(@Rect));
  Memo1.Refresh;var Rect: TRect;
begin
SendMessage( Memo1.Handle, EM_GETRECT, 0, LongInt(@Rect));
Rect.Left:= 30;
SendMessage(Memo1.Handle, EM_SETRECT, 0, LongInt(@Rect));
Memo1.Refresh;

برای تبدیل انواع متغیرها به رشته

function ValToString(Value: Variant): String;
begin
  case TVarData(Value).VType of
    varSmallInt,
    varInteger   : Result := IntToStr(Value);
    varSingle,
    varDouble,
    varCurrency  : Result := FloatToStr(Value);
    varDate      : Result := FormatDateTime('dd.mm.yyyy', Value);
    varBoolean   : if Value then Result := 'T' else Result := 'F';
    varString    : Result := Value;
    else            Result := '';
  end;
end;

به بزرگی 6/1 ریشتر...

سلام

روز سه شنبه حول و حوش 4 بعد از ظهر بودیم یک لحظه احساس کردیم زیر پام می لرزه حس بلند شدن نداشتم محل نذاشتم هنوز 15 دقیقه ای نگذشته بود تلفن زنگ خورد یک از دوستان پشت خط با یک لحن عجیب سعید کجایی؟ گفتم خونه.گفت پاشو بریم زلزله زنده اطراف شهرستان دشتی .... .

خلاصه راه افتادیم با چند تا دوستان شدیم 5 نفر. نمیدونم چه جوری رسیدیم تو راه هر کی زنگ میزد یک چیزی می گفت...

رسیدیم صحنه ای بود که واقعا گفتنش سخته یعنی شاید دستام یاری نمی کنه بنویسیم اولین جایی که رفتیم شهر شنبه بود خانه ها ویران...

تقریبا گروه های امدادی رسیده بودند خیلی ها از زیر اوار بیرون آورده بوند کنار ویرانه ها که رد میشدیم یکی داد میزد مادر یکی میزد توی سر خودش بابا یکی...

یکی دو ساعت اونجا بود دلم گرفت یکی گفت بچه ها یک روستا هست به نام درویشی هست دوره امداد رسانی درستی نشده راه افتادیم رفتیم خوشبختانه درویشی تلفات جانی نداشت فقط بیشتر خانه ویرانش ده بود.

شب قرار شد بمونیم باور شاید نکنید هر دقیقه یک زلزله با توان بالا میزد متاسفانه خانه های که درست ساخته نشد بودند یکی پس از دیگری خراب می شدند فردا شروع کردیم به کمک نیروهای امدادی .

همچنان زلزله ادامه داشت.نزدیک ظهر فکر کنم 12 بود بهتر بگم ظهر بود در یک جایی بود نه دیواری نزدیکش بود نه چیز دیگه یک دفعه زیر پام لرزید شاید باورش سخته بگم یک جورایی فکر کردم قیامته چون از ترس نمی تونستم فرار کنم یعنی نمیدونستم به کجا برم تا تموم شد چند بار مردم و زنده شدم یکی از دوستان حالش بهم خورد شروع کرد به استفراق.

شب خیلی خسته نمی شد بخوابی داشتم از پا می افتادم اومدم شهرمون هم استراحت کنم هم کمک اگه بشه جمع اوری کنم

فرداش که برگشتم خوشبختانه زلزله ها کمتر شده بود.

حادثه جالب زنده بیرون اومدن دوقلوها بود.

الان هم که شنبه شبه امداد رسانی هنوز ادامه داره واقعا هیچ جای دنیا مثل مردم ما پیدا نمیشه.

24 ساعت فیلم آموزشی دلفی به زبان فارسی

با سلام

24 ساعت فیلم آموزشی دلفی در قالب 47 درس از آقای شاهین عشایری بجنبید دانلود کنید تا از دستتون نرفته.



                                  دانلود

reset mysql password

با سلام

امروز قصد دارم در مورد بازیابی پسورد mysql بگم.اگه پسورد  فراموش کردید چی کار کنید.


ابتدا یک فایل متن ایجاد کنید با محتوای زیر

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;

برای اینکه با هم جلو بریم فایل متنی را در ریشه درایو D با نام 1 ذخیره کنید

وارد محید cmd ویندوز یا هر محیط "command"ی دیگه بشید

  Mysql  را متوقف کنید با دستور زیر

net stop mysql

حالا باید از طریق cmd وارد پوشه bin محل نصب mysql بروید.

cd "D:\Program Files\MySQL\MySQL Server 5.6\bin\"

حالا دستور زیر را وارد کنید

mysqld --defaults-file="d:\\Program Files\\MySQL\\MySQL Server 5.6\\my.ini"     --init-file=d:\\1.txt

حالا پسورد شما ریست شد الان میتوانید به با user که ساختید وارد شوید...


البته مراحل بالا را میتوانید با یک batch فایل انجام بدید که کارتان راحت تر باشد

Transparent Memo



unit TrMemo;



{$R-}



interface



uses

  Messages, Controls, StdCtrls, classes;



const

  TMWM_SpecialInvalidate = WM_USER + 1111;



type

  TTransparentMemo = class(TMemo)

  private

    procedure SpecialInvalidate(var Message: TMessage);

      message TMWM_SpecialInvalidate;

    procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;

    procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;

    procedure WMSetText(var Message: TWMSetText); message WM_SETTEXT;

    procedure CNCTLCOLOREDIT(var Message: TWMCTLCOLOREDIT);

      message CN_CTLCOLOREDIT;

    procedure WMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN;

    procedure WMEraseBkgnd(var Message: TWMEraseBkgnd); message WM_ERASEBKGND;

  protected

    procedure CreateParams(var Params: TCreateParams); override;

  public

    constructor Create(AOwner: TComponent); override;

  end;



procedure Register;



implementation



uses

  Windows;



{ TTransparentMemo }



procedure TTransparentMemo.WMHScroll(var Message: TWMHScroll);

begin

  inherited;

  PostMessage(Handle, TMWM_SpecialInvalidate, 0, 0);

end;



procedure TTransparentMemo.WMVScroll(var Message: TWMVScroll);

begin

  SendMessage(Handle, TMWM_SpecialInvalidate, 0, 0);

  inherited;

  PostMessage(Handle, TMWM_SpecialInvalidate, 0, 0);

end;



procedure TTransparentMemo.CNCTLCOLOREDIT(var Message: TWMCTLCOLOREDIT);

begin

  with Message do

  begin

    SetBkMode(ChildDC, TRANSPARENT);

    Result := GetStockObject(HOLLOW_BRUSH);

  end;

end;



procedure TTransparentMemo.WMSetText(var Message: TWMSetText);

begin

  inherited;

  if not (csDesigning in ComponentState) then

    PostMessage(Handle, TMWM_SpecialInvalidate, 0, 0)

end;



procedure TTransparentMemo.SpecialInvalidate(var Message: TMessage);

var

  r: TRect;

begin

  if Parent <> nil then

  begin

    r := ClientRect;

    r.TopLeft := Parent.ScreenToClient(ClientToScreen(r.TopLeft));

    r.BottomRight := Parent.ScreenToClient(ClientToScreen(r.BottomRight));

    InvalidateRect(Parent.Handle, @r, true);

    RedrawWindow(Handle, nil, 0, RDW_FRAME + RDW_INVALIDATE)

  end;

end;



procedure TTransparentMemo.WMKeyDown(var Message: TWMKeyDown);

begin

  SendMessage(Handle, TMWM_SpecialInvalidate, 0, 0);

  inherited;

  PostMessage(Handle, TMWM_SpecialInvalidate, 0, 0);

end;



procedure TTransparentMemo.WMEraseBkgnd(var Message: TWMEraseBkgnd);

begin

  Message.Result := 1

end;



constructor TTransparentMemo.Create(AOwner: TComponent);

begin

  inherited;

  ControlStyle := [csCaptureMouse, csDesignInteractive, csClickEvents,

    csSetCaption, csOpaque, csDoubleClicks, csReplicatable, csNoStdEvents];

end;



procedure TTransparentMemo.CreateParams(var Params: TCreateParams);

begin

  inherited CreateParams(Params);

  with Params do

  begin

   ExStyle := ExStyle or WS_EX_TRANSPARENT and not WS_EX_WINDOWEDGE

    and not WS_EX_STATICEDGE and not WS_EX_DLGMODALFRAME and not

    WS_EX_CLIENTEDGE;

  end;

end;



procedure Register;

begin

  RegisterComponents('Saberi', [tTransparentMemo]);

end;



end.

Example

var
  xmemo:TTransparentMemo;
begin
  xmemo:=TTransparentMemo.Create(Self);
  xmemo.ParentWindow:=Form1.Handle;
  xmemo.Height:=100;
  xmemo.Lines.Add('Saeed Saberi');

ساده تر کردن INsert و Update

سلام

!با عرض پوزش!


وقتی از کاربر اطلاعاتی میگیریم مثلا یک برنامه انبار داری اول چک می کنیم اگر وجو داره که باید Update کنیم و در غیر اینصورت Insert باید بشه.در کد زیر ما هر دو حالت با هم ممزوج کردیم در صورتی که وجود نداشته باشه اینسرت میشه در غیر اینصورت Update.

INSERT INTO TABLE (ID, NAMEkala,Number) VALUES (1,'CPU', 10) ON DUPLICATE KEY UPDATE number=number + 10

چون کدها مشخصصه توضیح نمیدم!