Hi,
Post by chriscolmHallo,
ich habe ein Macbook von Apple, welches nur eine linke Maustaste hat.
Unter MacOSX kann man nun einen Rechtsklick simulieren, indem man die
linke Maustaste 2sek gedrückt hält.
Sowas würde ich auch gerne für Delphi programmieren. Nun fehlt mir das
Stichwort, wie man sowas lösen kann. Und nach dem wollte ich mal fragen.
Es wäre sehr nett, wenn mir einer sagen könnte, wie sowas _prinzipiell_
gehen könnte.
Danke und Tschau - Robert
ich habe das seinerzeit wie folgt gelöst und bin bestens zufrieden:
procedure SVNE(C : TWinControl; ValueString : String; ValueBool : Boolean;
ValueInteger : Integer; ValueDouble : Double); overload;
procedure SVNE(C : TWinControl; ValueString : String); overload;
procedure SVNE(C : TWinControl; ValueBool : Boolean); overload;
procedure SVNE(C : TWinControl; ValueInteger : Integer); overload;
procedure SVNE(C : TWinControl; ValueDouble : Double); overload;
//...
procedure SVNE(C : TWinControl; ValueString : String; ValueBool : Boolean;
ValueInteger : Integer; ValueDouble : Double);
var
OnChange : TNotifyEvent;
OnClick : TNotifyEvent;
begin
if c is TEdit then
begin
OnChange := TEdit(c).OnChange;
TEdit(c).OnChange := nil;
TEdit(c).Text := ValueString;
TEdit(c).OnChange := OnChange;
end else
if c is TMemo then
begin
OnChange := TMemo(c).OnChange;
TMemo(c).OnChange := nil;
TMemo(c).Text := ValueString;
TMemo(c).OnChange := OnChange;
end else
if c is TRichEdit then
begin
OnChange := TRichEdit(c).OnChange;
TRichEdit(c).OnChange := nil;
TRichEdit(c).Text := ValueString;
TRichEdit(c).OnChange := OnChange;
end else
if c is TCheckBox then
begin
OnChange := TCheckBox(c).OnClick;
TCheckBox(c).OnClick := nil;
TCheckBox(c).Checked := ValueBool;
TCheckBox(c).OnClick := OnChange;
end else
if c is TDateTimePicker then
begin
OnChange := TDateTimePicker(c).OnChange;
TDateTimePicker(c).OnChange := nil;
TDateTimePicker(c).Date := Trunc(ValueDouble);
TDateTimePicker(c).OnChange := OnChange;
end else
if c is TRadioButton then
begin
OnChange := TRadioButton(c).OnClick;
TRadioButton(c).OnClick := nil;
TRadioButton(c).Checked := ValueBool;
TRadioButton(c).OnClick := OnChange;
end else
if c is TRadioGroup then
begin
OnChange := TRadioGroup(c).OnClick;
TRadioGroup(c).OnClick := nil;
TRadioGroup(c).ItemIndex := ValueInteger;
TRadioGroup(c).OnClick := OnChange;
end else
//usw.
sm('SVNE ist unbekannt!');
//***************
Aufruf:
SVNE(MeineCheckBox,true);
oder
SVNE(MeinEdit,'Event wird nicht ausgelöst');
Gruß,
Dirk Schauries