126 (edited by thezimguy 2019-03-07 08:28:03)

Re: What to implement first?

It's great to have this important updates.
Since the update below has been made
Added the ability to set the alignment for columns
I suggest if you can please add the following
1. Alignment for Column Header
2. Alignment for Column Footer
3. Column width
4. Column color
5. Column cellPadding
6. Cell Color (with condition eg. If < 0, red)
Regards

@thezimguy

Re: What to implement first?

I think you have to add built in keyboard .... or groupbox with keyboard buttons.. or something like this...

Re: What to implement first?

Please Dmitry, check "Sendmail" funcion, some folks like me are reporting connection closed gracefully errors with gmail, and even read time out, acordingly to some folks that use TIDSmtp this is due to a bug in the TLS settings, instead of auto you should use SSL (or  TLS if you want to use port 587) this should solve the problem.

Can you allow us to change tidsmtp settings in anyway?
many thanks

Re: What to implement first?

VascoMorais wrote:

Please Dmitry, check "Sendmail" funcion, some folks like me are reporting connection closed gracefully errors with gmail, and even read time out, acordingly to some folks that use TIDSmtp this is due to a bug in the TLS settings, instead of auto you should use SSL (or  TLS if you want to use port 587) this should solve the problem.

Can you allow us to change tidsmtp settings in anyway?
many thanks

Please, download latest beta version
https://www.dropbox.com/s/xfjcvk0z7je6i … a.zip?dl=0


Using this example, you can control all settings. Please let me know if you find some solution.
http://myvisualdatabase.com/forum/misc. … download=1

Dmitry.

Re: What to implement first?

Please add mainMenu functionality i used this in lazarus, but i wanna use in mvd thanks.

131 (edited by VascoMorais 2019-04-22 03:03:31)

Re: What to implement first?

Hi Dmitry
After taking a few hours exploring the problem i think i know what the problem is.

SSL and TLS are being updated from time to time, gmail for example only likes SSL V3 or at least TLS V1, unfortunately that i found is that Tidsmtp TLS is not function correctly and SSL V3 is not working either.
I Suspect this is a problem with the libaries (open SSL) , if you can please update the libaries with the latest instalments.


also:
how can i send attachments with tidsmtp?

i am trying adding:

Sfile: TStringList on function sendemail
on var: Attachment: TIdAttachment;
and on code:
Attachment := TIdAttachmentfile.Create(IdMessage1.MessageParts, (sfile));
But it returns an error stating tidattachmentfile is not an declared identifier.

Re: What to implement first?

VascoMorais wrote:

also:
how can i send attachments with tidsmtp?

i am trying adding:

Sfile: TStringList on function sendemail
on var: Attachment: TIdAttachment;
and on code:
Attachment := TIdAttachmentfile.Create(IdMessage1.MessageParts, (sfile));
But it returns an error stating tidattachmentfile is not an declared identifier.

Please download latest beta version
https://www.dropbox.com/s/xfjcvk0z7je6i … a.zip?dl=0


Example with tidattachmentfile

Post's attachments

Attachment icon idSMTP.zip 6.91 kb, 458 downloads since 2019-04-24 

Dmitry.

Re: What to implement first?

Thanks! For now i am able to use sendemail function with another email (other than gmail).
In the meanwhile don't forget to check about OpelSSL libraries , they might need updating.

Many thanks again!

134

Re: What to implement first?

Some ideas, if possible:


- Chart designer (perhaps a wizard) in MVD itself
- Snap to grid system or a grid system that overlays a panel in a form, "design view"
- Ctrl+Z button, sometimes i accidentally delete a carefully positioned element smile

Re: What to implement first?

Radio button too will be great.

brian

Re: What to implement first?

VascoMorais wrote:

Thanks! For now i am able to use sendemail function with another email (other than gmail).
In the meanwhile don't forget to check about OpelSSL libraries , they might need updating.

Many thanks again!

Hi @VascoMorais,

How did you get this to work? I've been trying to use it sending it using Gmail and I have not been
successful.  It gives me a 'Connection timeout error'


Please HELP!!!


Thanks!

137

Re: What to implement first?

brian.zaballa wrote:

Radio button too will be great.

+1

Визуальное программирование: блог и телеграм-канал.

Re: What to implement first?

gonpublic2k wrote:
VascoMorais wrote:

Thanks! For now i am able to use sendemail function with another email (other than gmail).
In the meanwhile don't forget to check about OpelSSL libraries , they might need updating.

Many thanks again!

Hi @VascoMorais,

How did you get this to work? I've been trying to use it sending it using Gmail and I have not been
successful.  It gives me a 'Connection timeout error'


Please HELP!!!


Thanks!

There have been recent changes in Google's encryption, maybe MVDB needs an update on that.

Re: What to implement first?

can you please add a mainmenu maker feature?

Re: What to implement first?

Please, how do I add menu to trayIcon when MinimizeToTray is enabled of a form
Thank you.

@thezimguy

Re: What to implement first?

Please download latest beta version
https://www.dropbox.com/s/6n60thhfaszoj … a.zip?dl=0


I added a new property for Form, TrayPopupMenu, example:

var
    PopupMenu: TPopupMenu;

procedure Form1_OnShow (Sender: string; Action: string);
var
    MyItem: TMenuItem;
begin
    PopupMenu := TPopupMenu.Create(Form1);

    MyItem := TMenuItem.Create (PopupMenu);
    MyItem.Caption := 'Item1';
    MyItem.OnClick := @MenuClick1;
    PopupMenu.Items.Add(MyItem);

    MyItem := TMenuItem.Create (PopupMenu);
    MyItem.Caption := 'Item2';
    MyItem.OnClick := @MenuClick2;
    PopupMenu.Items.Add(MyItem);

    Form1.TrayPopupMenu := PopupMenu;
    Form2.TrayPopupMenu := PopupMenu;
end;


procedure MenuClick1 (Sender: string);
begin
     ShowMessage('Hello from Item1');
end;

procedure MenuClick2 (Sender: string);
begin
     ShowMessage('Hello from Item2');
end;

Project with example

Post's attachments

Attachment icon Tray icon with PopupMenu.zip 3.99 kb, 443 downloads since 2019-09-23 

Dmitry.

Re: What to implement first?

DriveSoft wrote:

Please download latest beta version
https://www.dropbox.com/s/6n60thhfaszoj … a.zip?dl=0


I added a new property for Form, TrayPopupMenu, example:

var
    PopupMenu: TPopupMenu;

procedure Form1_OnShow (Sender: string; Action: string);
var
    MyItem: TMenuItem;
begin
    PopupMenu := TPopupMenu.Create(Form1);

    MyItem := TMenuItem.Create (PopupMenu);
    MyItem.Caption := 'Item1';
    MyItem.OnClick := @MenuClick1;
    PopupMenu.Items.Add(MyItem);

    MyItem := TMenuItem.Create (PopupMenu);
    MyItem.Caption := 'Item2';
    MyItem.OnClick := @MenuClick2;
    PopupMenu.Items.Add(MyItem);

    Form1.TrayPopupMenu := PopupMenu;
    Form2.TrayPopupMenu := PopupMenu;
end;


procedure MenuClick1 (Sender: string);
begin
     ShowMessage('Hello from Item1');
end;

procedure MenuClick2 (Sender: string);
begin
     ShowMessage('Hello from Item2');
end;

Project with example

Thank you very much Dmitry for your quick response.
I'm going to give it a try.
Really appreciated

@thezimguy

Re: What to implement first?

DriveSoft wrote:

Please download latest beta version
https://www.dropbox.com/s/6n60thhfaszoj … a.zip?dl=0


I added a new property for Form, TrayPopupMenu, example:

var
    PopupMenu: TPopupMenu;

procedure Form1_OnShow (Sender: string; Action: string);
var
    MyItem: TMenuItem;
begin
    PopupMenu := TPopupMenu.Create(Form1);

    MyItem := TMenuItem.Create (PopupMenu);
    MyItem.Caption := 'Item1';
    MyItem.OnClick := @MenuClick1;
    PopupMenu.Items.Add(MyItem);

    MyItem := TMenuItem.Create (PopupMenu);
    MyItem.Caption := 'Item2';
    MyItem.OnClick := @MenuClick2;
    PopupMenu.Items.Add(MyItem);

    Form1.TrayPopupMenu := PopupMenu;
    Form2.TrayPopupMenu := PopupMenu;
end;


procedure MenuClick1 (Sender: string);
begin
     ShowMessage('Hello from Item1');
end;

procedure MenuClick2 (Sender: string);
begin
     ShowMessage('Hello from Item2');
end;

Project with example

1. Please, how can I terminate the application on button click
2. How do make minimize tray on close
Tnx you.

Re: What to implement first?

1.
Just close the main form

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
    Form1.Close;
end;

2. Set property MinimizeToTray = True for Form1.
Example

procedure Form1_OnCloseQuery (Sender: TObject; var CanClose: Boolean);
begin
    SendMessage(Form1.Handle, $0112, 61472, 0); //WM_SYSCOMMAND - $0112, SC_MINIMIZE - 61472
    CanClose := False;
end;


begin
    Form1.OnCloseQuery := @Form1_OnCloseQuery;
end.

But you want to decide, how to close your application.

Dmitry.

Re: What to implement first?

DriveSoft wrote:

1.
Just close the main form

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
    Form1.Close;
end;

2. Set property MinimizeToTray = True for Form1.
Example

procedure Form1_OnCloseQuery (Sender: TObject; var CanClose: Boolean);
begin
    SendMessage(Form1.Handle, $0112, 61472, 0); //WM_SYSCOMMAND - $0112, SC_MINIMIZE - 61472
    CanClose := False;
end;


begin
    Form1.OnCloseQuery := @Form1_OnCloseQuery;
end.

But you want to decide, how to close your application.

Thank you Dmitry
It works perfectly but the problem now is how to terminate the application

146

Re: What to implement first?

var
  ReallyClose:boolean = false;

procedure Form1_btnClose_OnClick (Sender: TObject; var Cancel: boolean);
begin
  ReallyClose := True;
  Form1.Close;
end;

procedure Form1_OnCloseQuery (Sender: TObject; var CanClose: Boolean);
begin
  if not ReallyClose then
  begin 
    SendMessage(Form1.Handle, $0112, 61472, 0); //WM_SYSCOMMAND - $0112, SC_MINIMIZE - 61472
    CanClose := False;
  end;
end;

begin
  Form1.OnCloseQuery := @Form1_OnCloseQuery;
end.
Визуальное программирование: блог и телеграм-канал.

Re: What to implement first?

k245 wrote:
var
  ReallyClose:boolean = false;

procedure Form1_btnClose_OnClick (Sender: TObject; var Cancel: boolean);
begin
  ReallyClose := True;
  Form1.Close;
end;

procedure Form1_OnCloseQuery (Sender: TObject; var CanClose: Boolean);
begin
  if not ReallyClose then
  begin 
    SendMessage(Form1.Handle, $0112, 61472, 0); //WM_SYSCOMMAND - $0112, SC_MINIMIZE - 61472
    CanClose := False;
  end;
end;

begin
  Form1.OnCloseQuery := @Form1_OnCloseQuery;
end.

Thank you K245.
It worked wonderfully
A follow up question

How do I run only one instance of an application.

148

Re: What to implement first?

ekuaeshun13 wrote:

How do I run only one instance of an application.

This topic discusses suggestions for improving the program. Please create a separate topic or look for the answer to your question on this forum.

Визуальное программирование: блог и телеграм-канал.

Re: What to implement first?

const
  APP_NAME = 'My App Name';

procedure Form1_OnShow (Sender: string; Action: string);
begin
  Form1.Caption := '';
  if FindWindow(nil, APP_NAME) <> 0 then
  begin
      ShowMessage('Application is already launched.');
      Form1.Close;
  end;
  Form1.Caption := APP_NAME;
end;
Dmitry.

Re: What to implement first?

DriveSoft wrote:
const
  APP_NAME = 'My App Name';

procedure Form1_OnShow (Sender: string; Action: string);
begin
  Form1.Caption := '';
  if FindWindow(nil, APP_NAME) <> 0 then
  begin
      ShowMessage('Application is already launched.');
      Form1.Close;
  end;
  Form1.Caption := APP_NAME;
end;

Thank you Dmitry
It worked perfectly