![]() |
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:
was hab ich falsch gemacht?
[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 |
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:
nach dem
procedure Timer1Timer(Sender: TObject);
Delphi-Quellcode:
einfügen.
Image2:TImage;
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. |
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 :) ![]() ![]() ![]() kennst du vieileicht noch eine seite die den sprung von grundlagen zu den schweren sachen etwas detailierter beschreibt? |
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. |
AW: GetCursorPos
Liste der Anhänge anzeigen (Anzahl: 1)
So sollte das wohl sein?? :)
|
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:
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.
void GetWindowRect(
LPRECT lpRect ) const; so siehts bei mir aus: ![]() ![]() 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 :) |
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