AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SpeedButton

Ein Thema von itsme · begonnen am 26. Jun 2018 · letzter Beitrag vom 1. Jul 2018
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.912 Beiträge
 
Delphi 12 Athens
 
#1

AW: SpeedButton

  Alt 26. Jun 2018, 20:28
Wenn nichts geht, dann klicke ich halt auf den Button, ohne wäre es eleganter gewesen, da keine Anwesenheit am Rechner erforderlich
Das klingt so als würde dir schon ein ganz normaler Makrorekorder wie dieser vielleicht reichen...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: SpeedButton

  Alt 26. Jun 2018, 22:00
Habe gerade mal mit EDA nachgeschaut, alte Leier, ohne Handle isses nix.eda.jpg
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#3

AW: SpeedButton

  Alt 27. Jun 2018, 09:24
Die "passenden" Ereignisse muß man dann doch nur an dessen Parent schicken, also den mit einem Handle.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
itsme

Registriert seit: 3. Aug 2006
32 Beiträge
 
Delphi XE Architect
 
#4

AW: SpeedButton

  Alt 27. Jun 2018, 11:45
@himitsu
Also Parent ist ein TabSheet, da habe ich das Ereignis hingeschickt, trotzdem hat sich nichts getan.
Auf diesem TabSheet sind im übrigen 3 SpeedButton, selbst wenn das funktioniert hätte, wie hätte Parent dann gewusst, welcher SpeedButton gemeint ist?

Ich muss dann wohl zur Kenntnis nehmen, dass es nicht geht, Makro wäre vlt. eine Möglichkeit...
Es ging und geht natürlich auch ohne irgendeine Lösung, wieder ein wenig mit Delphi arbeiten, stand hier im Vordergrund.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: SpeedButton

  Alt 27. Jun 2018, 11:51
Auf SO habe ich eine Interessante Methode gefunden, aber vermutlich nützt das auch nichts wegen der Handle Geschichte.
Delphi-Quellcode:
function FindSubcontrolAtPos(AControl: TControl; AScreenPos, AClientPos: TPoint): TControl;
var
  i: Integer;
  C: TControl;
begin
  Result := nil;
  C := AControl;
  if (C=nil) or not C.Visible or not TRect.Create(C.Left, C.Top, C.Left+C.Width, C.Top+C.Height).Contains(AClientPos) then
    Exit;
  Result := AControl;
  if AControl is TWinControl then
    for i := 0 to TWinControl(AControl).ControlCount-1 do
    begin
      C := FindSubcontrolAtPos(TWinControl(AControl).Controls[i], AScreenPos, AControl.ScreenToClient(AScreenPos));
      if C<>nil then
        Result := C;
    end;
end;

function FindControlAtPos(AScreenPos: TPoint): TControl;
var
  i: Integer;
  f,m: TForm;
  p: TPoint;
  r: TRect;
begin
  Result := nil;
  for i := Screen.FormCount-1 downto 0 do
    begin
      f := Screen.Forms[i];
      if f.Visible and (f.Parent=nil) and (f.FormStyle<>fsMDIChild) and
        TRect.Create(f.Left, f.Top, f.Left+f.Width, f.Top+f.Height).Contains(AScreenPos)
      then
        Result := f;
    end;
  Result := FindSubcontrolAtPos(Result, AScreenPos, AScreenPos);
  if (Result is TForm) and (TForm(Result).ClientHandle<>0) then
  begin
    WinAPI.Windows.GetWindowRect(TForm(Result).ClientHandle, r);
    p := TPoint.Create(AScreenPos.X-r.Left, AScreenPos.Y-r.Top);
    m := nil;
    for i := TForm(Result).MDIChildCount-1 downto 0 do
    begin
      f := TForm(Result).MDIChildren[i];
      if TRect.Create(f.Left, f.Top, f.Left+f.Width, f.Top+f.Height).Contains(p) then
        m := f;
    end;
    if m<>nil then
      Result := FindSubcontrolAtPos(m, AScreenPos, p);
  end;
end;
Das soll es einem ermöglichen in Fremd-Anwendungen das Control unter der Maus zu ermitteln. Ich habe es noch nicht getestet.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
itsme

Registriert seit: 3. Aug 2006
32 Beiträge
 
Delphi XE Architect
 
#6

AW: SpeedButton

  Alt 27. Jun 2018, 11:59
Gut danke erst einmal, das werde ich testen...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#7

AW: SpeedButton

  Alt 27. Jun 2018, 12:00
Screen.Forms und Fremdanwendungen? Das halte ich für ein Gerücht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
itsme

Registriert seit: 3. Aug 2006
32 Beiträge
 
Delphi XE Architect
 
#8

AW: SpeedButton

  Alt 27. Jun 2018, 12:20
Ja bei näherem hinschauen kann man es wohl tatsächlich nicht für eine Fremdanwendung benutzen.

Hatte eigentlich auch keine Hoffnung mehr, nachdem ich hier gelesen hatte, dass Speedbutton kein Handle haben, weil sie nur "aufgemalt" sind.
Trotzdem vielen Dank für die Versuche mir zu helfen.
Ich denke ich werde in dieser Hinsicht ab sofort alle Tätigkeiten einstellen.

Es war jedenfalls ganz interessant zu sehen, wie Autofill Programme so werkeln.
Edit lesen und schreiben, normale Buttons betätigen hat alles wunderbar geklappt und ich eine Menge dazu gelernt
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: SpeedButton

  Alt 27. Jun 2018, 20:05
Screen.Forms und Fremdanwendungen? Das halte ich für ein Gerücht.
Du hast natürlich Recht! Was ich im Hinterkopf hatte und nicht dazugeschrieben weil ich ein wenig in Eile war, dieses Beispiel da oben, da wird ja schön mit WinControl rumhantiert und ich weiß das man bei Fremdanwendungen so vorgehen kann (der obere Code-Teil) ich habe gehofft das man es mit GraphicControl hätte umschreiben können, jedenfalls war das mein Anlass es zu posten.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:13 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