AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Rechte Maustaste auf Image blockieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rechte Maustaste auf Image blockieren

Ein Thema von Stony2k · begonnen am 18. Jun 2005 · letzter Beitrag vom 27. Jun 2005
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Stony2k
Stony2k

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

Re: Rechte Maustaste auf Image blockieren

  Alt 25. Jun 2005, 16:08
Hi Toni,
deine Lösung sieht zwar gut aus, aber der Grafische Aufbau meines Programmes lässt es nicht zu Panels oder auch Labels anstatt von Messageboxen zu verwenden, da es auf gut deutsch "beschissen" aussehen würde. Aber du hast den Focusverlust mit dem aktiven Fenster angesprochen. Gibt es eine Möglichkeit diesen Focusverlust zu unterbinden?

@Khabarakh:
Deine Lösungs klingt, gut, da bin ich noch garnicht drauf gekommen. Ich werde es mal versuchen.
  Mit Zitat antworten Zitat
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, 11: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
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#23

Re: Rechte Maustaste auf Image blockieren

  Alt 27. Jun 2005, 08:37
Okay, da dein Form wohl eh relativ "unsauber" geproggt ist - Khabarakh's Vorschlag würde ich da auch dazuzählen - könnte ich dir mal eine Weitere "unsaubere" Lösung anbieten.

Starte beim OnMouseDown einen Timer, der die Werte prüft. Sollte beim OnMouseUp irgendetwas schiefgegangen sein setze die Werte nach 1000ms mauell zurück. Das ist zwar etwas aufwand, sollte das Problem aber eindeutig beheben. Du kannst im Timer auch noch abfragen ob die Maustaste noch immer gedrückt ist und dann nicht manuell zurücksetzen, falls der user es "witzig" findet 30 sec auf den Button zu drücken. Musst nur Im Timer den Timer selbst wieder disablen, damit der reset nicht willkürlich gemacht wird.

regards

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz