Autor Beitrag
check_it_now
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mo 16.12.02 16:03 
hallo,

zur zeit programmiere ich mit VB6.0 - und denke darueber nach auf delphi5 umzusteigen. um dies mehr oder weniger erfolgreich zu machen habe ich ein existierendes VB6 program und versuche dieses nach delphi zu "transformieren". dabei taucht eine frage auf die ich nicht loesen kann

das einbinden von existierenden (user32.dll) funktionen will mir einfach nicht gelingen.

in VB sieht der code so aus

Decalration:

Public Const WM_CLOSE = &H10&

Public Declare Function PostMessage Lib "USER32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long


anwendung

PostMessage Me.hwnd, WM_CLOSE, 0&, 0&

kann mir jemand sagen an welcher stelle ich diese declarationen machen muss. auch das aufrufen der funktion selber (sie schliesst die anwendung) ist mir nicht ganz klar.

die funtion schliesst die aktuelle anwendung (geht bei delphi auch mit close) aber es soll ja nur ein beispiel fuer die einbindung dieser dinge sein.

danke im voraus

(16.12. 15:18 Tino) Titel geändert.

_________________
cu check_it_now
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 16.12.02 16:37 
Hallo,

meistens erstellt man für DLLs seperate units zum Kapzeln der Funktionen. Bevor ich hier nocheinmal erkläre wie genau das funktioniert, gebe ich dir lieber Adressen zu entsprechenden Tutorials ;).

www.auq.de/viewtopic.php?t=102
www.delphi-treff.de/...tutorials/dllbinding
www.tutorials.delphi-source.de/dlls

Ich denke das sollte vollständiger und besser aufbereitet sein als alles was ich hier auf die Schnelle Tippen kann.

Also viel Spass damit.

Klabautermann
check_it_now Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 18.12.02 10:19 
die referenzen hatte ich schon gelesen aber leider geht man da nur auf eigendefinierte dll's ein. das ist aber momentan nicht mein prob.

also nochmal zum teil habe ich das geloest. na ja zumindest bekomme ich keine fehlermeldung mehr bei der declaration. die PostMessage decalration steht in der windows.pas. Diese Declaration konnte ich mir also sparen.

jedoch ist mein prob ist nach wie vor der aufruf der function. speziell der parameter

"ME.hwnd" will mir unter delphi nicht gelingen.
unter vb ist mit Me.hwnd die application gemeint. man koennte auch fuer Me den namen der zu beendenden Mainform benutzen.

PostMessage Me.hwnd, WM_CLOSE, 0&, 0&

wenn ich nun unter delphi schreibe

mit dem formnamen "frm_test"

PostMessage (frm_test.hwnd, WM_CLOSE, 0&, 0&);

bekomme ich die errormeldung

Incompatible Typen HWND und Tfrm_test

aender ich frm_test nach Tfrm_test heisst die errormeldung

Incompatible Typen HWND und Class reference

wer kann mir mit einem bsp helfen. mit der beschriebenen "grauen theorie" komme ich zur zeit nicht weiter.

_________________
cu check_it_now
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mi 18.12.02 10:24 
Hi
in Delphi müsste das heissen:
ausblenden Quelltext
1:
PostMessage(Application.Handle, WM_CLOSE,  $0, $0);					



Gruss Lothar

So ganz nebenbei, kommt mir dein Username ziemlich bekannt vor. Fährst du vielleicht ne Hornet?

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
check_it_now Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 18.12.02 10:34 
oh oh komando zurueck :-)

habe es gerade herausgefunden.

PostMessage (Application.Handle, WM_CLOSE, 0 , 0 ) ist das richtige commando

oh das war "kompliziert" trotzdem danke fuer die bemuehungen

_________________
cu check_it_now
check_it_now Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 18.12.02 10:35 
sorry hatte deine antwort nicht gelesen. aber genau das ist es. danke danke danke.

statt application geht auch der fenstername.

also nochmal danke

_________________
cu check_it_now
check_it_now Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mi 18.12.02 15:11 
@lothar,

>So ganz nebenbei, kommt mir dein Username ziemlich bekannt vor. Fährst du vielleicht ne Hornet?

yes sir, ne blaue 9er

ich hatte deinen beitrag noch nicht ganz zu ende gelesen aber dein kuerzel war mir auch irgend wie bekannt. glaube aber du bist mehr auf der andern hornetseite activ :-)

momentan kann ich mich noch nicht so richtig fuer delphi begeistern. ich habe starke syntaktische probleme :-( mit dieser programiersprache.
na ja mal sehen wenn ich noch 2 wochen durchhalte und meine questions for runnaways beantwortet werden sehe ich das eventuel anders.

als denne bis zur naechsten frage

_________________
cu check_it_now
alexschultze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 317



BeitragVerfasst: Fr 03.01.03 23:31 
hey, klingt interessant, aber ich raffe nix :)
Was ist ne Hornet? Nen Auto? Wie kommst du über den Nick drauf?

Du arbeitest nett zufällig bei der NSA? *ggg*


Meine Meinung zum Thema:
DELPHI RULEZ! Ich persönlich habe mich (seeehr) oberflächlich mal in VB als auch C++ umgesehen, und es gab nichts das mich begeistert hätte.
Mein Argument ist immer: Delphi ist einfach, und ist nicht umsonst RAD (Rapid Application Developement) - kleine Anwendungen sind sehr fix gemacht.

(kann nicht genau sagen wie es in VB und C dabei aussieht).
Ich persönlich habe auf Empfehlung mit Delphi angefangen, und kann jetzt gar nicht mehr aufhören :)

Dafür ist das Forum ja da -> learn it or leave it :)
(cooler spontaner Spruch. Sowas müsste mir öfter mal einfallen *g*)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 04.01.03 05:48 
ausblenden Quelltext
1:
PostMessage (Application.Handle, WM_CLOSE, 0 , 0 );					

Etwas umständlich oder schreibst du ohne die VCL? Ein einfaches und Furz trockenes
ausblenden Quelltext
1:
close;					

würde es auch tun.
OregonGhost
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: Sa 04.01.03 17:23 
check_it_now hat folgendes geschrieben:

die funtion schliesst die aktuelle anwendung (geht bei delphi auch mit close) aber es soll ja nur ein beispiel fuer die einbindung dieser dinge sein.

Wer lesen und schreiben kann ist klar im Vorteil :roll:

_________________
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
check_it_now Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Di 07.01.03 11:05 
@alexschultze

hornet - da ist ein motorrad aeh was sage ich da . das ist DAS motorrad.

ne bei der NASA arbeite ich nicht.

so noch fragen??

_________________
cu check_it_now