Abfrage des Mausklicks

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Das hängt dann eher von Dir ab, wie weit du ihn veröffentlichen möchtest.
Ich habe noch nirgends von einer Einschränkung darüber gelesen.

Grüße Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: frage nebenbei

Beitrag von Kaeru Gaman »

Dieter Platzke hat geschrieben:diese geschichte GetAsyncKeyState_(#vk_lbutton)

hab ich noch nie in der Doku gefunden.
gibt es von diesen dingern die nicht in der Doku stehen noch mehr?
achte auf den Unterstrich nach dem Befehlswort - das ist kein PB-Befehl, das ist ein API-Aufruf.

eine menge API-funktionen und -Konstanten sind in PB eingebunden und benutzbar,
aber nicht extra dokumentiert, weil
A) sie von Microsoft ausreichend dokumentiert wurden, zu finden in der MSDN
http://www.microsoft.com/germany/msdn/
http://www.microsoft.com/germany/msdn/l ... fault.mspx

B) die gesamtmenge so umfangreich ist, dass es den Rahmen der PB-Help sprengen würde.

mit GetAsyncKeyState_(#vk_lbutton) benutzt du also keine PB-Abfrage, sondern sagst PB: "is scho recht, ich frag Windows direkt"
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Und zur Demoversion kommt noch hinzu, das man die API nicht direkt so
nutzen kann wie in der Vollversion.
Dazu muss man wissen, welche API-Befehle zu welcher DLL gehören.
Weiteres darüber ist hier und da im Pureboard als auch im Archiv verstreut schon geschrieben worden.
Übrigens, ich habe beim obigen Beispiel das GetGetAsyncKeyState_(#vk_lbutton) rausgenommen, da es auch über Windowsevents
mit hilfe von Windowskonstanten wie #WM_LBUTTONDOWN abgefragt
werden kann.
Ich bin noch am ausprobieren, wie man das mit den Gummiband unter Windows machen kann.

Grüße Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

oops.. Demo? hab ich da was überlesen?



> Gummiband

den vorherigen zustand des zeichenbereichs in ein back-image.
dieses back in das anzeige-image kopieren, und die linie draufzeichnen.

damit ist die linie "beweglich", ohne dass man jedes element einzeln neuzeichnen muss.

erst wenn die linie wirklich gesetzt wird, in die Liste aufnehmen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Betrifft nur dieses hier, wenn Brügge helfen will, wird es in WindowsAPI
aufwändiger:

http://www.purebasic.fr/german/viewtopi ... 055#102055

Das mit dem Gummiband dachte ich mir schon.
Dazu müsste man wohl noch ein #WM_MOUSEMOVE mittels If im
Case #WM_LBUTTONDOWN prüfen und dort die Kopie nutzen.
Vielleicht über API mit Hilfe von GetClientRect(hwnd,rect) und SetBkMode(hdc,#TRANSPARENT). Wird noch etwas dauern, bis ich damit soweit bin.

Grüße Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

Beitrag von Brügge »

ich programmiere purebasic erst seid einen monat also jetzt nicht lachen ^^

also: was für ein gummiband?? und warum ist der screenmodus schlecht? ich programmiere nur so und bin bis jetzt super damit zurecht gekommen.

achja ich verstehe auch nicht was ihr da sonst so hingeschrieben habt :oops:

naja also erklärt mal kurz was das programm machen soll und ich versuche es dann mal zu programmieren ^^

hab nix zu tun :lol:

MFG Brügge
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> warum ist der screenmodus schlecht?

nicht schlecht, nur für applications nicht so geeignet.
er stellt dir keine gadgets zur verfügung oder menus.

auch ein WindowedScreen, wo man theoretisch buttons daneben packen kann,
macht gerne mal probleme beim resizen...


> was für ein gummiband??

die linie, die nach dem ersten click am mauszeiger hängt,
bevor sie mit dem zweiten click endgültig gezeichnet wird...


> was ihr da sonst so hingeschrieben habt

- abfrage der mousebuttons im fenster
- pro&contra WinAPI-nutzung
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

Beitrag von Brügge »

also mit dem menü:

an einer seite kann man doch ein menü reinprogrammieren...


dann das mit dem gummiband:

überhaupt kein problem. die einzelnen linien werden in einem array gespeichert.

beispiel:
dim linex.f(1000)
dim liney.f(1000)

und immer wenn man eine neue zeichnet wird es dort reingespeichert.


also ich finde das einfach und das problem mit der Maus habe ich schon behoben (siehe seite 1)
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

natürlich kann man auch auf nem screen menus und buttons programmieren...
aber man müsste sie komplett selbst erstellen, und das ganze wäre ne vollbild-anwendung,
und vollbild-anwendungen waren schon zu DOS-zeiten verpönt.


> überhaupt kein problem. die einzelnen linien werden in einem array gespeichert.

ich würde eher ne liste nehmen.

> das problem mit der Maus habe ich schon behoben

nur für screen, nicht für fenster.



aber lies dir nochmal die komplette problematik durch.
es geht eben darum keinen screen zu verwenden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Brügge
Beiträge: 359
Registriert: 28.05.2006 16:40
Wohnort: Rheine

Beitrag von Brügge »

> das problem mit der Maus habe ich schon behoben

nur für screen, nicht für fenster.


ich kann nur screen programmieren (habe mich noch nicht mit den fenstern beschäftigt (finde screens in ordnung).


ich würde eher ne liste nehmen.
ja ne liste ist gut ich kann allerdings mit PB nur array machen KA wie listen gehen.
man kann ja auch einen großen arrey nehmen

dim line(1000,2)

ist auch wie ne liste ^^


naja also Dieter ich kann dir nur bei screens helfen :allright: musst du wissen wie dein programm werden soll. :wink:

MFG
Antworten