Drag'n'Drop

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Tja, das ist wieder mal die Frage, wo stellt man die Fragen?

Wie viele Anfänger sind hier Anfänger?

Einige können nicht lesen und oder bis drei Zählen, andere bekommen aber nur hier auf ihre Fragen einigermaßen vernüftige Antworten.

Hab mal den srod angeschrieben. Der meinte, es wird eventuell was mit OLE und COM zu tun haben.

Darüber hab ich schon mal was gelesen, muss aber sagen, dass ich hier im Forum dazu nicht fündig geworden bin. Nur mal einzeln erwähnte Beiträge ohne konkrete Dinge.

OLE realisiert wohl die Kommunikation zwischen den Programmen.

ts-soft? Hast du da nicht eine Idee, oder eine Art Hinweis, wie man es vielleicht sogar mit dem PureDispHelper schafft?

:freak:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Xaby hat geschrieben: ts-soft? Hast du da nicht eine Idee, oder eine Art Hinweis, wie man es vielleicht sogar mit dem PureDispHelper schafft?

:freak:
Einfach nutzen :mrgreen:
Wenn Du z.B. ein EditorControl mithilfe von RichEdit.ocx erstellst, kannste
auch Bilder einfügen, per Drag and Drop. Dafür funktioniert der Rest nicht
mehr in herkömmlicher Weise :mrgreen:

Infos wirste wohl selber nachlesen müssen, gibt ja ein paar Bücher, aber
"alle" in englisch. MSDN enthält auch allte notwendigen Infos
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Hab mal Google gefragt: RichEdit.ocx

Das hört sich ja ganz lustig an, scheint aber Geld zu kosten.
Oder hab ich wieder eine PB-Biblithek übersehen. In der Zusammenstellung von PBOL war wohl nix vergleichbares bei.

Process hört sich ganz gut an. Klingt aber zu komplex.

Marquee ging bei mir übrigens nicht.
PureLibrary is missing: GadgetExtensions

Und es war PB 3.94 Code.

Aber trotzdem schön. PDF und Kompression sind sicherlich auch noch zu was zu gebrauchen :roll:

Auf jeden Fall gut dokumentiert.

Dann muss ich das mit OLE aufschieben.

Hierzu eine Idee?
http://www.purebasic.fr/german/viewtopic.php?t=12949 :allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Was genau brauchst du denn- bzw: Was willst du denn anstellen dass du OLE unbedingt brauchst?
Das Meiste, was OLE-Technisch abläuft, ist eh im Hintergrund...
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Die Übermittlung der markierten Daten eines Programms zu dem anderen.

Mann muss ja wissen, was markiert worden ist. Bzw. sich in der Drag'n'Drop-Ablage befindet.

Da kann ja alles mögliche drin stehen.

- Links
- Bilder
- Text
- Objeke halt

Ähnlich wie das Clipborad. Nur ohne es zu benutzen :mrgreen:

Genauso kann man über OLE Excel mit Word verknüpfen.
Oder vielleicht auch Berechnungen von Excel durchführen lassen, die man selbst in einem PB-Prgramm benötigt.

Man selbst hat zwei StringGadgets im eigenen Programm.
Gib da was ein und die Inhalte werden an Excel gesendet.
Excel führt dann eine Rechenoperation aus und sendet das Ergebnis zurück. So braucht man das nicht als QuellCode im eigenen Programm haben.


Die Frage ist nur, wie man OLE benutzt.

Wie gebe ich meinen Zellen(!)-Inhalt zum Beispiel an Excel?
Und wie erhalte ich ihn zurück?

Es muss ja irgendwie eine eindeutige Zuordnung erfolgen.
Und diese läuft sicherlich über ein Standardprotokoll.
So dass jedes Programm zum Beispiel formatierten kopierten Text wieder richtig einfügen kann, ohne die Formatierung zu verlieren.

Der Vorteil von OLE liegt darin, dass man das Rad nicht neu erfinden muss. Und durch zum Beispiel Tabellen mit Bedingungen relativ dynamisch ist, ohne das eigentliche Pogramm ständig anpassen zu müssen oder alle möglichen Eventualitäten vordefiniert zu haben.
:?
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Wie gebe ich meinen Zellen(!)-Inhalt zum Beispiel an Excel?
>> Und wie erhalte ich ihn zurück?
Haste Dir die Beispiele im PureDisphelber überhaupt angeguckt?
Beispiele für Excel und OpenCalc sind bei
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

ts-soft hat geschrieben:Wollen wir wetten?
Gern, ich behaupte einfach mal, in PB 4.10 wird es weder Drag'n'Roll noch Rock'n'Drop geben. :mrgreen:
ts-soft hat geschrieben:EasyVent ist keine Lib, sondern ein Source
Ja tschulidige. Das müsste ich eigentlich wissen, weil ich EasyVENT ja schon mal angeschaut hatte. Ich würds trotzdem gern mal selber proggen, vielleicht kann ichs mir bei srod ja abschauen.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Beitrag von freak »

Drag&Drop mit OLE läuft folgendermaßen:
- IDataObject für die zu bewegenden Daten implementieren
- IDropSource implementeren
- DoDragDrop_() damit aufrufen... voila!

Ist durchaus in PB möglich, aber da braucht man schon einiges an COM Kenntnissen.
Damit ihr jetzt hier aber nicht das Rad neu erfindet verrate ich einfach mal, dass es in 4.10 wirklich
eine Drag & Drop lib geben wird die dann auch crossplatform ist.
(Darauf müsst ihr auch hoffentlich gar nicht mehr so lange warten.)

Das sieht dann so aus:

Code: Alles auswählen

If DragText("Hallo Welt") = #PB_Drag_Copy
  ; hat geklappt
EndIf
AND51 hat geschrieben:
ts-soft hat geschrieben:Wollen wir wetten?
Gern, ich behaupte einfach mal, in PB 4.10 wird es weder Drag'n'Roll noch Rock'n'Drop geben. :mrgreen:
Tja, verlohren... ;) (hey, hier gibt es ja den "Zunge-rausstreck-Smilie" gar nicht!)

Ich hatte da vor längerer Zeit im engl. Forum mal einen Hinweis drauf gegeben,
desshalb war sich ts-soft da so sicher.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Stimme AND51 zu.

Hatte zwar gerade von Gnozal einen Link bekommen, wo alle hoffen, dass in 4.1. endlich Ziehen und Fallen lassen für alle OS mit implimentiert sein soll, aber aus vergangenen Tagen weiß ich, dass es nicht immer alles klappt, was angepriesen worden ist.

zu ts-s.
Hab mir die Beispiele angesehen, muss aber sagen, dass ich bei dem ein oder anderen schon Panik bekommen haben. Denn so richtig toll ist es ja nicht, wenn der Rechner macht, was er will.
Und es ist ein Unterschied, ob man das Programm arbeiten sieht und irgendwelche mystischen Eingaben über Macros vorgenommen werden oder ob man die Daten ordentlich an der eigentlichen Anwenund vorbei austauscht.

Zu den Beispielen kann ich auch nur sagen, dass die meisten einfach nur eingabe von normalem Text waren.

Vielleicht hab ich ja wieder was übersehen.

... du kennst dich sicherlich mit dem PureDispHelper besser aus.
Vielleicht bist du so freundlich und schreibst ein zwei Zeilen Code hier ins Thema.
S$=GetStringFrom(Application, StringField [,file])
Oder so /:->
GetStringFrom("Explorer",Adresszeile)
Mit den ganzen Callbacks kenne ich mich nicht aus.
Wird sicherlich Tage dauern, bis ich das verstanden haben.

:shock:


Selbst wenn es in PB 4.1. mit dabei ist ...
Wann wird der Release sein? Bis Weihnachten möchte ich nicht unbedingt warten :?
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> S$=GetStringFrom(Application, StringField [,file])
sowas gibts natürlich genausowenig wie MakeCoolGame() :lol:
Mit dhGetValue erhälste Werte. Wie gesagt, einfache Beispiele (noch einfacher gehts nicht) sind bei.

example_starcalc.pb kann ich Dir empfehlen, enthält alles was Du meintest.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten