![]() |
Maus auf ein Ereignis reagieren lassen
Hallo an alle,
ich habe folgendes Problem: Ich möchte ein kleines Programm schreiben, wo die Maus auf ein Ereignis reagiert. Um genau zu sein, die Maus soll einen Mausklick simulieren, wenn der Cursor auf einer bestimmten Farbe ist. Wie ich einen Mausklick simuliere weiß ich schon, aber leider nicht wie ich die Maus reagieren lassen kann, wenn man z.B. über die Farbe blau fährt. Könnte mir jemand weiterhelfen? :stupid: Ich hab etwas vergessen: Die Maus sollte aber nciht nur in meinem Programm reagieen sondern auch in anderen. Also eine systemweite funktion. |
Re: Maus auf ein Ereignis reagieren lassen
Hier ein alter Quellcode den ich auf Platte noch hatte. Funktioniert nicht nur in deinem eigenen Window sondern auf allen. Zeigt dir die Koordinaten an, die Farbe, Saettigung und Helligkeit von RGB!
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Panel1: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private-Deklarationen } DesktopDC: hDC; hCross, hSavedCursor : hCURSOR; procedure GetPixelFarbe; procedure WM_TIMER(var Msg: TMessage); message WM_TIMER; procedure RGBtoHSV(const aR, aG, aB: Integer; var zH, zS, zV: Integer); function Min(A, B: Integer): Integer; function Max(A, B: Integer): Integer; function GetHValue(ACol: TColor): Integer; function GetSValue(ACol: TColor): Integer; function GetVValue(ACol: TColor): Integer; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin DesktopDC := GetDC(0); SetTimer(Self.Handle, 1, 10, nil); end; function TForm1.Min(A, B: Integer): Integer; begin if A < B then Result := A else Result := B; end; function TForm1.Max(A, B : Integer): Integer; begin if A > B then Result := A else Result := B; end; procedure TForm1.RGBToHSV(Const aR, aG, aB: Integer; var zH, zS, zV: Integer); var Delta, Mini: integer; begin Mini := Min(aR, Min(aG, aB)); zV := Max(aR, Max(aG,aB)); Delta := zV - Mini; // Saturation if zV = 0 then zS := 0 else zS := (Delta * 255) Div zV; if zS = 0 then zH := 0 else begin if aR = zV then zH := ((aG - aB) * 60) Div Delta else if aG = zV then zH := 120 + ((aB - aR) * 60) Div Delta else if aB = zV then zH := 240 + ((aR - aG) * 60) Div Delta; if zH <= 0 then zH := zH + 360; end; end; function TForm1.GetHValue(ACol: TColor): Integer; var H, S, V: Integer; begin RGBToHSV(GetRValue(ACol), GetGValue(ACol), GetBValue(ACol), H, S, V); Result := H; end; function TForm1.GetSValue(ACol: TColor): Integer; var H,S,V: Integer; begin RGBToHSV(GetRValue(ACol), GetGValue(ACol), GetBValue(ACol), H, S, V); Result := S; end; function TForm1.GetVValue(ACol: TColor): Integer; var H,S,V: Integer; begin RGBToHSV(GetRValue(ACol), GetGValue(ACol), GetBValue(ACol), H, S, V); Result := V; end; procedure TForm1.GetPixelFarbe; var Pos: TPoint; Col: TColor; begin GetCursorPos(Pos); if WindowFromPoint(Pos) = Self.Handle then begin //SetSystemCursor(LoadCursor(hInst, IDC_IBEAM), OCR_IBEAM); Exit; end else begin hCross := LoadCursor(0, IDC_CROSS); SetCursor(hCross); Col := GetPixel(DesktopDC, Pos.X, Pos.Y); Panel1.Color := Col; Panel1.Caption := 'Pixelkoordinate ' + IntToStr(Pos.X) + ':' + IntToStr(Pos.Y); Label1.Caption := 'R: ' + IntToStr(GetRValue(Col)); Label2.Caption := 'G: ' + IntToStr(GetGValue(Col)); Label3.Caption := 'B: ' + IntToStr(GetBValue(Col)); Label7.Caption := IntToStr(GetVValue(Col)); Label9.Caption := IntToStr(GetSValue(Col)); Label11.Caption := IntToStr(GetHValue(Col)); end; end; procedure TForm1.WM_TIMER(var Msg: TMessage); begin if Msg.WParam = 1 then //TimerID #1 GetPixelFarbe; end; procedure TForm1.FormDestroy(Sender: TObject); begin ReleaseDC(Self.Handle, DesktopDC); end; end. |
Re: Maus auf ein Ereignis reagieren lassen
Cool danke :thumb:
Da ich aber noch neu in der Programmierwelt bin, weiß ich nicht so recht was ich machen soll. Ich hätte ganz gerne einfach bloß die reine Funktion, mit der ich dann ein bischen rumspielen kann. Bei dem ganzen Code steig ich garnicht mehr durch. :wiejetzt: Also die Maus soll einen Mausklick simulieren wenn jemand mit dem Cursor über eine Farbe fährt die ich festgelegt habe. Aber an welcher Stelle füge ich den Mausklick denn jetzt ein? |
Re: Maus auf ein Ereignis reagieren lassen
Delphi-Quellcode:
Das würde glaube ich reichen...
function GetPixelFarbe: TColor;
var Pos: TPoint; begin GetCursorPos(Pos); Result := GetPixel(DesktopDC, Pos.X, Pos.Y); end; Und das jetzt ins OnTimer von einem Timer...
Delphi-Quellcode:
Das kommt mir allerding ein bisschen ... naja... schwammig vor...
if GetPixelFarbe = DieFarbe then
MachDenMausklick; Vielleicht gibts es noch eine bessere Lösung dein Ziel zu erreichen... :gruebel: Kannst ja mal sagen, was du vorhast! |
Re: Maus auf ein Ereignis reagieren lassen
Gibts da nicht so was wie ein onMouseMove, das ausgelöst wird, sobald sich die Mauskkordinaten ändern?
|
Re: Maus auf ein Ereignis reagieren lassen
Genau so hab ich mir das vorgestellt. Danke TonyR :thumb: :thumb: :thumb:
Gleich mal ein bischen rumprobieren. Danke Das mit dem mousemove hab ich mir alles angeguckt bei dsdt.info aber das war alles nciht das was ich suche. Aber jetzt hab ichs ja. :thumb: Edit: Da gibts noch ein Problem. Das funktioniert nicht
Delphi-Quellcode:
es hackt an DesktopDC. :gruebel:
Result := GetPixel(DesktopDC, Pos.X, Pos.Y);
|
Re: Maus auf ein Ereignis reagieren lassen
Das mit dem Timer ist aber recht unsauber. Wenn du die Frequenz zu niedrig einstellst, bekommst du kein sauberes Ergebniss und mit einer hohen Frequenz belastest du nur unnötig den Rechner.
|
Re: Maus auf ein Ereignis reagieren lassen
Zitat:
Mit OnMouseMove... geht das systemweit? Und: Wäre da die CPU-Belastung nicht eigentlich höher? |
Re: Maus auf ein Ereignis reagieren lassen
Wie mache ich das denn jetzt? Das funzt nicht. Hättet ihr noch einen anderen Weg? :(
|
Re: Maus auf ein Ereignis reagieren lassen
Zitat:
Aber trotzdem bitte ein bisschen denken vor dem Schreiben :wink: Es fehlt die Deklaration von dem Handle und die Zuweisung (wenn ich dir jetzt sage, dass du mal oben bei dem Quelltext guckst, müsstest dus eigentlcih hinbekommen...):
Delphi-Quellcode:
DesktopDC: hDC; //global deklarieren!
... DesktopDC := GetDC(0); //am bestens ins FormCreate! |
Re: Maus auf ein Ereignis reagieren lassen
Danke. Aber das weiß ich doch nicht das ich das deklarieren muss. Es gibt einiges an Funktionen die ich nicht vorher deklarieren muss oder? :gruebel:
|
Re: Maus auf ein Ereignis reagieren lassen
Zitat:
Aber ich kanns versthehen, dass du da noch nicht ganz dahinter stehst... Aber dann musst du ja auch noch nicht solche schweren Sachen machen, oder? |
Re: Maus auf ein Ereignis reagieren lassen
Übung macht den Meister. Funzt mit dem Mausklick und so aber der macht immer den Klick egal welche Farbe ich eingestellt habe und nur auf dem Desktop. Das soll aber in jeder Anwendung gehen und nicht nur auf dem Desktop. Und vor allem soll es auf Farbe reagieren. :wiejetzt:
Ich wusste nicht DesktopDC eine Variable ist :lol: |
Re: Maus auf ein Ereignis reagieren lassen
Hat denn jetzt jemand noch eine Lösung? Egal was ich ausprobiere es funzt einfach nicht!?
|
Re: Maus auf ein Ereignis reagieren lassen
Gib mal ein biss'l CODE!
Kann jetzt aber erst mal nicht helfen... weil: Formel 1 |
Re: Maus auf ein Ereignis reagieren lassen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe mal ein Beispiel angehängt, wo ein Mausklick ausgelöst wird, wenn man die Maus bewegt und sich darunter eine rote Farbe befindet. Das ganze funktioniert mit einem Hook, eventuell kannst du ja da was von gebrauchen. |
Re: Maus auf ein Ereignis reagieren lassen
oha hast du den schon gehabt oder hast du dir ganze arbeit extra für mich gemacht? :cheers:
Bestimmt kann ich es gebrauchen, aber ich bin ja noch neuling und dachte es gibt eine einfachere lösung weil ich bei deinem quellcode noch garnicht so durchsteige. Ih werd wohl noch ein paar jahre üben müssen. :stupid: :wall: an tonyr: ich schick gleich mal was ich jetzt moentan habe...
Delphi-Quellcode:
Und da ist er auch schon... :gruebel:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; DesktopDC: hDC; implementation {$R *.dfm} function GetPixelFarbe: TColor; var Pos: TPoint; begin GetCursorPos(Pos); Result := GetPixel(DesktopDC, Pos.X, Pos.Y); end; procedure TForm1.FormCreate(Sender: TObject); begin DesktopDC := GetDC(0); end; procedure TForm1.Timer1Timer(Sender: TObject); var x, y: integer; begin if GetPixelFarbe = clGreen then mouse_event(MOUSEEVENTF_RIGHTDOWN, x, y, 0, 0); mouse_event(MOUSEEVENTF_RIGHTUP, x, y, 0, 0); end; end. |
Re: Maus auf ein Ereignis reagieren lassen
Lässt sich ja auch compilieren aber was gescieht hab ich ja schon geschriben. der mausklick wird immer auf dem desktop simu obwohl er niht grün ist.
oha sorry doppelpost |
Re: Maus auf ein Ereignis reagieren lassen
1. Frage: Welches Interval hast du im Moment im Timer???
2. Sache: In der Timer-Prozedur hast du die Variablen X und Y...diese sind immer 0! Ich dachte, du willst den Mausklick dort ausführen, wo die Farbe ist :wink: Da musst du entweder nochmal das
Delphi-Quellcode:
einfügen, oder Pos gleich global deklarieren, um auch in Timer1Timer darauf zugreifen zu können!!
var
Pos: TPoint; begin GetCursorPos(Pos); 3. Ein weiteres Problem ist, dass du dir ganz sicher sein musst, welche Farbe es nun sein soll! Ich hoffe du weist, dass die ganze Sache nicht funktioniert, wenn die Farbe unter der Maus auch nur eine winzige Farbnuance anders ist!!! ClGreen ist also in dem Fall auch nicht sehr empfehlenswert! Lieber eine Farbangabe im Hexadezimalstil verwenden (Wie z.B. "FFFFFF")... Optimal wäre natürlich ein Farbbereich... aber da bin ich überfragt, was die Realisierung angeht... [Da weis vielleicht ein anderer bescheid!?] So... nun werd ich mir mal deinen Code ansehen Bitsetter! PS: Juhuuuu... Alonso ist bloß Fünfter :thumb: Edit: Noch was gaaanz wichtiges!! Warum vergisst du das begin und end für den Block im OnTimer???
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var x, y: integer; begin //hier musst du das mit dem Getcursor noch machen ;-) if GetPixelFarbe = clGreen then begin //dieses hier meine ich mouse_event(MOUSEEVENTF_RIGHTDOWN, x, y, 0, 0); mouse_event(MOUSEEVENTF_RIGHTUP, x, y, 0, 0); end; end; |
Re: Maus auf ein Ereignis reagieren lassen
OK ich habe jetzt eine Änderung vorgenommen, he. Und erst hat es nicht gefunzt und dann hab ich nochmal etwas geändert und es funzt. Aber leider geht das mit der Farbe nicht da hast du recht. Das heisst ich habs mal mit schwarz ausprobiert, und das muss dann wirklich auh richrig schwarz sein.
Delphi-Quellcode:
Jo sieht es gerade aus und es funzt. Aber dat mit der Farbe geht nicht. :(
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; DesktopDC: hDC; Pos: TPoint; x, y: integer; implementation {$R *.dfm} function GetPixelFarbe: TColor; begin GetCursorPos(Pos); Result := GetPixel(DesktopDC, Pos.X, Pos.Y); end; procedure TForm1.FormCreate(Sender: TObject); begin DesktopDC := GetDC(0); end; procedure TForm1.Timer1Timer(Sender: TObject); begin if GetPixelFarbe = clBlack then begin mouse_event(MOUSEEVENTF_RIGHTDOWN, x, y, 0, 0); mouse_event(MOUSEEVENTF_RIGHTUP, x, y, 0, 0); end; end; end. |
Re: Maus auf ein Ereignis reagieren lassen
ok die maus soll reagieren wenn der cursor auf einer farbe zwischen der und der ist. das könnte ich ja in hex machen so
Delphi-Quellcode:
.
$B5D4F19E
Aber in delphi gibt es das schlüsselwort 'between' leider nicht dafür. Wie kann ich es denn machen? :wiejetzt: |
Re: Maus auf ein Ereignis reagieren lassen
Zitat:
Aber nochmal zu den Code: Hast du den hier richtig reingepostet??? Weil so kann der nicht funktionieren... Wenn dann so:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; DesktopDC: hDC; Pos: TPoint; implementation {$R *.dfm} function GetPixelFarbe: TColor; begin Result := GetPixel(DesktopDC, Pos.X, Pos.Y); end; procedure TForm1.FormCreate(Sender: TObject); begin DesktopDC := GetDC(0); end; procedure TForm1.Timer1Timer(Sender: TObject); begin GetCursorPos(Pos); if GetPixelFarbe = clGreen then begin mouse_event(MOUSEEVENTF_RIGHTDOWN, Pos.x, Pos.y, 0, 0); mouse_event(MOUSEEVENTF_RIGHTUP, Pos.x, Pos.y, 0, 0); end; end; end. |
Re: Maus auf ein Ereignis reagieren lassen
Zitat:
Man kann ja die Farbe des Pixels unter der Maus und die gewünschte Farbe in die 3 Grundfarben zerlegen.... und dann subtrahieren und wenn das Ergebnis so ziehmlich bei null ist, dann ist es eine ähnliche Farbe!!! Anregung ![]() Farbe 1: R=120...G=100...B=12 Farbe 2: R=130...G=90...B=10 Ergebnis: R=10...G=10...B=2 --> Farbe ähnlich.... Klick ausführen. Und, wie findes du die Idee??? |
Re: Maus auf ein Ereignis reagieren lassen
Und wenn das Programm beendet wird, sollte man den Speicher auch wieder frei geben:
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin if DesktopDC > 0 then ReleaseDC(0, DesktopDC); end; |
Re: Maus auf ein Ereignis reagieren lassen
sehr gute idee. jedoch sind die farben in zu großem unterschied. hatte ich schon erwähnt das die farben wechseln!!!!!!!!!!?? :lol:
Aber da fällt mir auch noch etwas ein. jetzt musst du mir nur noch sagen wie ich das auf delphi übertrage :lol: du weißt ja... NEULING :spin2: edit: Kann mir denn jemand erkläre wie ich das machen soll? |
Re: Maus auf ein Ereignis reagieren lassen
Vielleicht so:
Delphi-Quellcode:
"Abs" gibt den Betrag bzw. den Absolut-Wert zurück. Bsp.: Abs(2-7)=5
type
TForm1 = class(TForm) Timer1: TTimer; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; DesktopDC: hDC; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin DesktopDC := GetDC(0); end; procedure TForm1.FormDestroy(Sender: TObject); begin If DesktopDC > 0 then ReleaseDC(0, DesktopDC); end; function GetPixelAbweichung(Farbe: TColor): Integer; var DCFarbe: TColor; begin DCFarbe:=GetPixel(DesktopDC, Mouse.CursorPos.X, Mouse.CursorPos.Y); Result:=Abs(GetRValue(Farbe)-GetRValue(DCFarbe)) + Abs(GetGValue(Farbe)-GetGValue(DCFarbe)) + Abs(GetBValue(Farbe)-GetBValue(DCFarbe)); end; procedure TForm1.Timer1Timer(Sender: TObject); begin If GetPixelAbweichung(clGreen)<100 // die Abweichung von der Farbe, z.B. 100. maximale Abweichung wäre 3*255 then begin mouse_event(MOUSEEVENTF_RIGHTDOWN, Mouse.CursorPos.X, Mouse.CursorPos.Y, 0, 0); mouse_event(MOUSEEVENTF_RIGHTUP, Mouse.CursorPos.X, Mouse.CursorPos.Y, 0, 0); end; end; EDIT: Achja, DesktopDC am Ende noch freigeben. (s. bittsetter) |
Re: Maus auf ein Ereignis reagieren lassen
du bist ein schatz!!! :-D
ää *räusper*. Nein ich bin nicht schwul... hab herzlichen dank :P |
Re: Maus auf ein Ereignis reagieren lassen
Aber nicht den letzten Beitrag von Bitsetter unter den Tisch fallen lassen!!!
Es gehört sich einfach den Speicher wieder freizugeben :wink: Und jetzt ist da die redbox... und die sagt, dass der Hanno das schon geändert hat in seinem Code... Naja... spät, aber gemacht^^ |
Re: Maus auf ein Ereignis reagieren lassen
Liste der Anhänge anzeigen (Anzahl: 2)
Ich hab jetzt aber nochmal was nachgeprüft...
Ob es vielleicht klüger wäre den Schnitt an Abweichungen auszurechnen??? Weil siehe Screenshot (Bild 1): die zwei Farben sehen sich doch ziemlich ähnlich...
Code:
Sehr große Abweichung für kleine sichtbare Abweichung oder?
R G B
oben: 150 255 0 unten: 0 255 150 ergibt: 150 + 0 + 150 = 300 Edit: Anhang Edit2: Bild 2 im Anhang...
Code:
und hier ist ein deutlicher Unterschied sichtbar...
R G B
oben: 0 205 230 unten: 0 255 150 ergibt: 0 + 50 + 80 = 120 Edit 3: Mit dem Schnitt bilden geht ja auch net... 300/3 = 100 120/3 = 40 auch eine Verfälschung... :cry: Toll, oder? |
Re: Maus auf ein Ereignis reagieren lassen
die abweichung könnte noch größer sein, aber ich hab keine ahnung wie ich die jetzt vergrößere. ich lege die farbe dann ja eh fest. Vielleicht mach ich eine TComboBox mit rein das man die farbe selber auswählen kann. :stupid:
|
Re: Maus auf ein Ereignis reagieren lassen
der letzte quellcode funzt leider nicht. die maus reagiert dann garnicht mehr. also sie macht den rechtsklick nicht meine ich. ich kapier garnix :wall:
|
Re: Maus auf ein Ereignis reagieren lassen
Ist sowas vielleicht möglich?
Delphi-Quellcode:
:gruebel: :gruebel: :gruebel: :gruebel: :gruebel: :gruebel: :gruebel: :gruebel:
const FarbAbweichung: Array [$FFFFFFFF..$BBBBBBBB] of Integer;
|
Re: Maus auf ein Ereignis reagieren lassen
Nee... geht net... (außer vielleicht mit nem Array of TColor??? glaub ich aber nicht)...
Man müsste die Farben auf einem Farbverlauf, der alle Farben beinhaltet darstellen können... Dann könnte man ganz einfach feststellen, ob sich die Farbe noch im gültigen Bereich befindet... Ich mach dazu auch noch ne Skizze... aber jetz muss ich ins Bett... morgen halb sechs aufstehen... |
Re: Maus auf ein Ereignis reagieren lassen
mir ist noch jede meneg eingefallen. ich probiere es einfach mal aus...
muss jetzt auch gleich pennen. :pale: |
Re: Maus auf ein Ereignis reagieren lassen
Ich habe noch eine andere Funktion geschrieben, kannst ja mal testen ob die anders ist:
Delphi-Quellcode:
Obwohl was ist denn das $B5D4F19E für eine Farbe?
function ColorToleranz(SollColor, IstColor: TColor; Toleranz: Byte): boolean;
var rSoll, gSoll, bSoll, rIst, gIst, bIst: byte; begin Result:= false; SollColor := ColorToRgb(SollColor); rSoll := GetRvalue(SollColor); gSoll := GetGvalue(SollColor); bSoll := GetBvalue(SollColor); IstColor := ColorToRgb(IstColor); rIst := GetRvalue(IstColor); gIst := GetGvalue(IstColor); bIst := GetBvalue(IstColor); if (rIst >= rSoll- Toleranz) and (rIst <= rSoll + Toleranz) and (gIst >= gSoll- Toleranz) and (gIst <= gSoll + Toleranz) and (bIst >= bSoll- Toleranz) and (bIst <= bSoll + Toleranz) then Result := true; end; procedure TForm1.Timer1Timer(Sender: TObject); var DCFarbe: TColor; begin DCFarbe := GetPixel(DesktopDC, Mouse.CursorPos.X, Mouse.CursorPos.Y); if ColorToleranz(clGreen, DCFarbe, 20) then//max 255 begin mouse_event(MOUSEEVENTF_RIGHTDOWN, Mouse.CursorPos.X, Mouse.CursorPos.Y, 0, 0); mouse_event(MOUSEEVENTF_RIGHTUP, Mouse.CursorPos.X, Mouse.CursorPos.Y, 0, 0); end; end; z.B. Blau = $FF0000 Es kann natürlich auch sein, dass es so eine Funktion schon irgendwo gibt. |
Re: Maus auf ein Ereignis reagieren lassen
Liste der Anhänge anzeigen (Anzahl: 1)
cool danke gleich mal angucken. ich weiß nicht was das für eine farbe ist :lol:
das war ja bloß ein beispiel. aber ich gucke gerne bei Photoshop: die letzten beiden hat er weggelassen wie du dem bild entnehmen kannst :gruebel: |
Re: Maus auf ein Ereignis reagieren lassen
Also bei mir ist die Farbe andersrum richtig :?: , probiere es doch mal aus:
Delphi-Quellcode:
Kann ja sein, dass es daran liegt.
procedure TForm1.Button1Click(Sender: TObject);
begin Color:= $F1D4B5; //$B5D4F1; end; |
Re: Maus auf ein Ereignis reagieren lassen
mal noch ne andere frage!? ich probiere gerade das ganze in eine dll zu 'basteln'. alles soweit fertig, lässt sich compilieren alles ok. aber wie setzte ich ein timer in einer dll bzw. einen intervall. das was ich jetzt da rein geschrieben habe soll ganz schnell gemacht werden, also der mausklick :?:
bis morgen geh jetzt erstmal pennen... :angel: |
Re: Maus auf ein Ereignis reagieren lassen
ok die funktion oben geht aber es wird immer ein mausklick simuliert auch wenn ich nicht über der farbe bin?? :gruebel:
|
Re: Maus auf ein Ereignis reagieren lassen
Wow :shock:
Bitsetter legt sich ja richtig ins Zeug... Ich teste den Code auch mal... Aber warum willst du das in eine DLL auslagern??? Nur so zum probieren??? Naja... jedenfalls, Wenn du dazu auch Fragen hast, dann bitte einen neuen Thread aufmachen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz