Einzelnen Beitrag anzeigen

Benutzerbild von Stony2k
Stony2k

Registriert seit: 21. Mai 2005
Ort: Moers
76 Beiträge
 
Delphi 7 Enterprise
 
#22

Re: Rechte Maustaste auf Image blockieren

  Alt 26. Jun 2005, 10:39
So, ich habe das ganze nun folgendermassen gelöst:

Code:
function SendText( Command: String ): HWND;
var
    Handle: HWND;
    i: Integer;
begin
    Handle := FindWindow( 'Ultima Online', nil );
    if ( Handle = 0 ) then
        Handle := FindWindow( 'Ultima Online Third Dawn', nil );

    if Handle = 0 then
    begin
        Result := 0;
        MouseUpFix:=Result;
        exit;
    end;
    // Send an enter first
    SendMessage( Handle, WM_CHAR, 13, 0 );
    // Send the command char
{    //cChar := Config.GetString( 'commandchar' );
    cChar := '.';
    for i := 0 to length( cChar ) do
        SendMessage( Handle, WM_CHAR, Ord( cChar[i] ), 0 ); }
    for i := 0 to length( Command ) do
        SendMessage( Handle, WM_CHAR, Ord( Command[i] ), 0 );
    // Send an enter at the end
    SendMessage( Handle, WM_CHAR, 13, 0 );
    Result := Handle;
end;
Code:
procedure Tfrm_main.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
If Button = mbLeft then
  begin
    image1.Picture:=img_btn_normal.Picture;
    Label1.Top:=Label1.Top-2;
    Label1.Left:=Label1.Left+1;
      If MouseUpFix = 0 Then begin
        Application.MessageBox( PChar( 'Der Ultima Online Client muss gestartet sein !'),'Fehler!', MB_OK+MB_ICONERROR );
        MouseUpFix := 1;
      end;
  end;
end;
Funzt alles wunderbar.
Aber ich habe bemerkt, wenn man ganz schnell hintereinander auf das "Ok" der Fehlermeldung und auf das Image klickt, wird manchmal die Mouse Down nicht ausgeführt, heisst, das Label verschiebt sich immer weiter nach oben. Muss wohl was mit dem "Fokusverlust" zutun haben.
Wenn wer Rat weiss, der möge sich melden
  Mit Zitat antworten Zitat