Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi GetCursorPos (https://www.delphipraxis.net/153487-getcursorpos.html)

Anuran 5. Aug 2010 00:05

GetCursorPos
 
hai.

habe vor kurzen erst mit delphi angefangen. ein paar tutorials hab ich schon durch aber mit GetCursorPos hab ich grad ein problem.

habe den code zwar gefunden und auch schon versucht einzubauen aber bekomme da einige fehler und weiss nicht weiter :(

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
  private
    { Private-Deklarationen }
  public
  procedure WMNCHitTest(var msg: TWMNCHitTest);
  message wm_NCHitTest;
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMNCHitTest(var msg: TWMNCHitTest);
begin
  inherited;
  if msg.Result = htClient then
    msg.Result := htCaption;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption := IntToStr(Mouse.CursorPos.X);
  Label2.Caption := IntToStr(Mouse.CursorPos.Y);
end;

end.
Code:
[Fehler] Unit1.pas(35): Undefinierter Bezeichner: 'Timer1Timer'
[Fehler] Unit1.pas(35): ';' erwartet, aber '(' gefunden
[Fehler] Unit1.pas(37): Undefinierter Bezeichner: 'Label1'
[Fehler] Unit1.pas(38): Undefinierter Bezeichner: 'Label2'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
was hab ich falsch gemacht?

Teekeks 5. Aug 2010 00:52

AW: GetCursorPos
 
Ich empfehle dir ein Grundlagen Tutorial zu lesen.

Aber konkret hierzu:
Label1+Label2 nicht gefunden: Du brauchst erstmal auch 2 Labels mit den entsprechenden Namen auf deinem Formular.

Timer1Timer: Hier gibt es gleich mehrere Probleme:
1.) Diese Prozedur wurde nicht oben im Formular mit angegeben.
Also solltest du dieses hier:
Delphi-Quellcode:
procedure Timer1Timer(Sender: TObject);
nach dem
Delphi-Quellcode:
Image2:TImage;
einfügen.
2.) Timer1Timer sollte von einer Komponente namens "Timer1" ausgelöst werden. Ziehe dir eine solche auf dein Formular und gehe im Objektinspektor auf "Ereignisse" und wähle bei "OnTimer" deine Prozedur aus.

Es sieht ganz danach aus als hättest du diese Zeilen einfach nur Kopiert ohne versucht zu haben sie zu verstehen.
Damit wirst du im Programmieren nicht weit kommen und Spaß macht es auch nicht, weil man keinerlei eigene Leistung zeigt. Dann kann man auch gleich ein fertiges Programm nehmen.

Versuche also in Zukunft am besten alles was du irgendwo weg Kopierst (wenn das denn unbedingt sein muss) auch zuerst vollständig zu verstehen, sonst könnte man dir ja noch sonst was gleich noch mit ein schmuggeln.

Doch am allerbesten wäre es, wenn du nichts wegkopieren musst, sondern alles selbstständig schreibst. Da ist die Freude am größten und man ist sich auch sicher das man es verstanden hat was man da geschrieben hat.
Ich weiß natürlich das dies am Anfang noch nicht ganz 100%ig gehen wird, doch darauf solltest du hinarbeiten.

Anuran 5. Aug 2010 13:31

AW: GetCursorPos
 
habe mir bisher 3 grundlagen, von verschiedenen seiten, durchgelesen und rumprobiert. und "hello world" oder "taschenrechner" helfen bei meinem vorhaben nicht :( und sobald man die grundlagen durch hat wird man mit den "hardcore" sachen bombardiert die mir momentan einfach nur kopfschmerzen bereiten^^

da hast du recht. im moment ist copy&paste und zu hoffen, nette leute zu treffen die mir ein paar sachen erklären ganz gut. danke dir auch für die hilfe :)

http://www.delphi-treff.de/tutorials/grundlagen/
http://www.bergt.de/workshop/delphi/inhalt.htm
http://www.math.uni-leipzig.de/pool/...lphi/index.htm

kennst du vieileicht noch eine seite die den sprung von grundlagen zu den schweren sachen etwas detailierter beschreibt?

Teekeks 5. Aug 2010 14:11

AW: GetCursorPos
 
Nunja. Wenn man die Grundlagen verstanden hat, muss man sich für eine bestimmte Richtung entscheiden, die einem am meisten Interessiert oder die man gerade benötigt.
So eignet man sich Stück für Stück immer neues Wissen auch in den Komplizierteren gebieten an.
So habe ich das gemacht und mache es auch immer noch. Denn man kann nicht in allen Gebieten alles Wissen (das tue ich auch bei weitem nicht und ich denke auch alle anderen haben dieses Problem.).

Wenn man dann mal auf etwas stößt was nirgends beschrieben steht und was man auch nicht durch herumprobieren heraus bekommt, dann kan man guten Gewissens auch mal nachfragen.

Ich habe am Anfang auch mit den Tutorials vom Delphi-Treff gearbeitet.
Nehme dir viel Zeit auch wirklich alles was dort geschrieben steht zu verstehen, genau zu verinnerlichen was dort genau geschieht. Und nehme dir auch die Zeit den Taschenrechner und andere kleinere Projekte zu verstehen. denn das ist dann die Praktische Umsetzung des vorher gelernten.
Versuche immer das bereits gelernte in deinem speziellen Fall anzuwenden und wenn das nicht funktioniert etwas anderes aus zu Probieren.

lbccaleb 5. Aug 2010 17:19

AW: GetCursorPos
 
Liste der Anhänge anzeigen (Anzahl: 1)
So sollte das wohl sein?? :)

Anuran 5. Aug 2010 18:43

AW: GetCursorPos
 
jep bis jetzt funktioniert es wunderbar. vieleicht sollte ich mal zeigen worauf ich überhaupt hinaus will. im prinzip brauche ich "GetMousePos" nur um irgentwie auf der x.bmp ein MouseEvent zu machen um damit das programm schliessen zu können damit ich keine titleBar mehr habe.

an andere stelle hab ich gelesen das soll mit "GetWindowRect" funktionieren. die delphi hilfe findet zu dem stichwort nichtmal etwas, bei der google suche werd ich bombardiert mit foren einträgen die zwar ein ähnliches problem haben aber irgendwie auch doch nicht und wenn ich bei MSDN gucke dann kommt:
Code:
void GetWindowRect(
   LPRECT lpRect
) const;
da wüsste ich schonmal wieder nicht weiter. es gibt keine "procedure" oder ähnliches in dem code. nirgens wird beschrieben was ich damit machen soll. und wie schon gesagt, die grundlagen helfen mir leider auch nicht weiter.

so siehts bei mir aus:
http://250kb.de/u/100805/j/QpTqUesbqBed.JPG

versteht mich nicht falsch, erwarte keine komplettlösung oder so. nur ein paar hilfestellungen die meinem level angemessen sind und mich stück für stück ins ziel bringen :)

DeddyH 5. Aug 2010 19:12

AW: GetCursorPos
 
Also willst Du die Titlebar ausblenden und bei Click auf das rot hinterlegte "X" das Fenster schließen? Dann kannst Du sehr wohl mit Mouse.CursorPos arbeiten, musst das aber dann von Screen- in Client-Koordinaten umrechnen. Dafür gibt es die Methode ScreenToClient von TControl (glaube ich). Nun musst Du nur noch schauen, ob die X-Koordinate >= (Formularbreite - Grafikbreite) und die Y-Koordinate <= Grafikhöhe ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 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