Autor |
Beitrag |
Wil
Hält's aus hier
Beiträge: 2
|
Verfasst: Do 30.09.10 21:10
Hallo!
Ich habe leider keine Ahnung von C.
Ich hoffe jemand kann das unterstehende algorithme umprogrammieren in Delphi7. Vielleicht ist es schwierig, aber ich bin ueberzeugt jemand wird es schaffen.
Ich waehre dafuer sehr dankbar!
Wil (aus Holland).
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| LRESULT CALLBACK RueckWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { WORD nummer, status; LONG ret = 0; if(message == msgApparaat) { switch(wParam) { case CLA_AKTIV: hApparaat = (HWND) lParam; ApparaatAusgabe(CLA_ANMELDUNG, (WORD) hApparaatMsgWnd); break;
case CLA_LOK_SPEEDINFO: nummer = HIWORD(lParam); status = LOWORD(lParam); int lokRicht = status & 0x8000 ? LR_VOR : LR_RUECK; Fahrrichtung status = status & 0x7FFF; } }
else ret = DefWindowProc(hWnd, message, wParam, lParam); return ret; } |
Moderiert von Narses: C#-Tags hinzugefügt
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Fr 01.10.10 05:50
Hey,
das müsste ungefähr so aussehen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| function RueckWndProc(hWnd: HWND; Message: Cardinal; wParam: WPARAM, lParam: LPARAM): LRESULT; var nummer, status: Word; lokRichtung: Integer; begin result := 0; if (Message == msgApparaat) then begin case wParam of CLA_AKTIV: begin hApparaat := HWND(lParam); ApparaarAusgabe(CLA_ANMELDUNG, WORD(hApparaatMsgWnd)); end; CLA_LOK_SPEEDINFO: begin nummer := HiWord(lParam); status := LoWord(lParam); lokRichtung := status and $8000 mod LR_VOR / LR_RUECK; status := status and $7FFF; end; end; end else result := DefWindowProc(hWnd, message, wParam, lParam); end; |
Ich bin mir jetzt aber nicht sicher, ob es die Typen (WPARAM, LPARAM) so in Delphi gibt. Außerdem weiß ich nich genau ob der ":"-Operator in C das normale "/" in Delphi war...
MfG Bergmann
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
Für diesen Beitrag haben gedankt: Wil
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 01.10.10 06:02
Für diesen Beitrag haben gedankt: Wil
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Sa 02.10.10 17:58
Stimmt, jetz wo du' sagst fällt mir wieder ein, das ich da ma was drüber gelesen hab. Aber status & $8000 ist doch kein Boolean, also kann man das ja gar nicht so einfach übersetzen. Oder is da dann ein ByteBool gemeint?
MfG Bergmann.
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
Für diesen Beitrag haben gedankt: Wil
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Sa 02.10.10 18:03
Zuletzt bearbeitet von Marc. am Sa 02.10.10 18:17, insgesamt 4-mal bearbeitet
Für diesen Beitrag haben gedankt: Wil
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 02.10.10 18:10
Bergmann89 hat folgendes geschrieben : | Aber status & $8000 ist doch kein Boolean, also kann man das ja gar nicht so einfach übersetzen. |
0 ist False, alles andere True. Also kannst du einfach auf Boolean casten. Das ist ja auch genau der Punkt wo man stolpert, wenn man auf "= True" prüft. Weil man dann nur auf einen der möglichen Werte für True prüft.
Du kannst natürlich auch <> 0 extra abfragen. 
Für diesen Beitrag haben gedankt: Wil
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Sa 02.10.10 19:43
Hey,
also das geht in D7 nicht. Is das bei den neuen Versionen möglich?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| var i: Integer;
i := 0; if i then Caption := 'ja' else Caption := 'nein'; |
MfG Bergmann.
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
Für diesen Beitrag haben gedankt: Wil
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Sa 02.10.10 19:47
Bergmann89 hat folgendes geschrieben : | also das geht in D7 nicht. Is das bei den neuen Versionen möglich? |
Nein, deswegen auch der Cast nach Boolean. Das geht aber auch nur, weil "0" als FALSE definiert ist.
Für diesen Beitrag haben gedankt: Wil
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Sa 02.10.10 19:53
Hey,
das casten hab ich überlesen, sry
das lustige is, das mein AntiVir mein Programm jetz als Virus erkennt  aber nur wenn der Integer-Wert ungleich 0 ist. Naja is ja auch ega, jetz weiß ich ja das es geht
Danke.
MfG Bergmann
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
Für diesen Beitrag haben gedankt: Wil
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Sa 02.10.10 20:00
Für diesen Beitrag haben gedankt: Wil
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 02.10.10 20:32
Antivir halt, was die da für einen Blödsinn produzieren ist ja nun hinlänglich bekannt. Antivir erkennt eh alles was sich bewegt als Virus. 
Für diesen Beitrag haben gedankt: Wil
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: So 03.10.10 02:15
Mit Antivir meinte ich nicht Antivir, sonder mein Antivirus-Prgramm, welches avast! ist^^
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
Für diesen Beitrag haben gedankt: Wil
|
|
Wil 
Hält's aus hier
Beiträge: 2
|
Verfasst: Mo 04.10.10 00:09
Ich bin sehr froh das ihr alle solche gute Uebersezungen fuer mich macht (C==>D7). Jetzt bin wahrscheinlich gans nahe dran!!!!!!!!!!!!!!!!!!!!!!!!
Mit sehr freundlichen Gruese, Wil.
|
|
Bergmann89
      
Beiträge: 1742
Erhaltene Danke: 72
Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
|
Verfasst: Mo 04.10.10 00:28
Hey,
wieso ganz na dran? Marc. hats doch fertig gepostet...
MfG Bergmann
_________________ Ich weiß nicht viel, lern aber dafür umso schneller^^
|
|
iterion
      
Beiträge: 21
Erhaltene Danke: 2
Win XP ,Suse 11.3
Delphi 7
|
Verfasst: Mo 04.10.10 01:07
Wil hat folgendes geschrieben : | Ich bin sehr froh das ihr alle solche gute Uebersezungen fuer mich macht (C==>D7). Jetzt bin wahrscheinlich gans nahe dran!!!!!!!!!!!!!!!!!!!!!!!!
Mit sehr freundlichen Gruese, Wil. |
Vielleicht kann man in c++ eine dll daraus machen, da es sich um eine funktion handelt, ich habe selber noch keine ahnung von c++ aber hier steht wie mans macht :
logix4u.net/Programm..._DLLs_with_VC++.html
Dann brauchst du nur die dll in delphi laden und die funktion aufrufen, ist sicher einfacher.
Ueber die antiviren, kann ich nur eins sagen: Wenn man sie auschaltet und nur benutzt wenn man den programmen nicht traut sind sie am nützlichsten, ansonsten sind es nur Cpu killer, der beste antivirus ist Human IQ!!!
Für diesen Beitrag haben gedankt: Martok
|
|
|