![]() |
Fenster erstellen mit TP für Windows?
Moin. Hab da n kleines Problem, und zwar wollt ich mit Turbo Pascal für Windows n Fenster erstellen.
Soweit so gut, es wird kompiliert, aber beim Ausführen sagt er, dass die EXE eine Schutzverletzung bei 0001:0033 ausgelöst hätte :wall: So hab ichs gemacht:
Delphi-Quellcode:
stdcall gibts bei Turbopascal nicht :wall:
program APPNAME;
uses WinCrt, WinProcs, WinTypes; var WndClass: TWndClass; msg: TMSG; function WNDPROC(hwnd: HWND; uMsg, wParam: WORD; lParam: LongInt): LongInt; begin WNDPROC := DefWindowProc(hwnd, uMsg, wParam, lParam); end; begin WndClass.style := CS_OWNDC; WndClass.lpfnWndProc := @WNDPROC; WndClass.cbClsExtra := 0; WndClass.cbWndExtra := 0; WndClass.hInstance := hInstance; WndClass.hIcon := 0; WndClass.hCursor := LoadCursor(hInstance, IDC_ARROW); WndClass.hbrBackground := COLOR_WINDOW; WndClass.lpszMenuName := nil; WndClass.lpszClassName := 'WndClass'; RegisterClass(WndClass); CreateWindowEx(WS_EX_DLGMODALFRAME, 'WndClass', 'Bruchrechnen', WS_VISIBLE or WS_CAPTION or WS_SYSMENU, 0, 0, 500, 500, 0, 0, hInstance, nil); while True do begin if not GetMessage(msg, 0, 0, 0) then exit; TranslateMessage(msg); DispatchMessage(msg); end; end. |
Re: Fenster erstellen mit TP für Windows?
Naja gut, ich habs geschafft n Button in die Konsole zu pflanzen, das is ja auch schon was :mrgreen:
Allerdings hab ich jetz kp wie ich auf die Ereignisse reagieren soll :wall: //Edit: Hier ma der Code:
Delphi-Quellcode:
Das Edit wird auch auf der Konsole erstellt, aber WM_SETTEXT funktioniert nicht :?
program bla;
uses WinCrt, WinProcs, WinTypes; var wnd, wnd2: HWND; begin wnd := FindWindow('TPWinCrt', nil); wnd2 := CreateWindow('EDIT', ':D', WS_CHILD or WS_VISIBLE or WS_BORDER or ES_MULTILINE, 20, 20, 60, 60, wnd, 4, hInstance, nil); ReadLn; SendMessage(wnd2, WM_SETTEXT, 0, Integer(PChar('HALLO'))); ReadLn; end. |
Re: Fenster erstellen mit TP für Windows?
Ich denk ma darauf weiß eh keiner ne Antwort, aber n letzter Versuch: *PUSH* :duck:
|
Re: Fenster erstellen mit TP für Windows?
Prinzipel genau wie in Delphi du must nur die ereignisse abfragen such mal hier im Forum da müsste was zu finden sein wie man Nachrichten abfangen und auswerten kann
|
Re: Fenster erstellen mit TP für Windows?
Zitat:
Es geht doch nicht ums Ereigniss auswerten, das würde ja in die WNDPROC Funktion kommen, aber ich denk mal da haperts. Wie gesagt: Compilieren: Ja, Ausführen: Nein...Fehler s.o Es geht ums erstellen und nicht darum was auszuwerten, das ist erstmal zweitranging. //Edit: Ich denke ich könnte die Turbopascal Version anhängen an den Post, oder :gruebel: Ich meine mich entsinnen zu können, dass mein Lehrer gesagt hat, dass die Version so veraltet ist, dass sie kostenlos ist. Ist ja auch im Netz nirgends zu finden (nichtmal Borland.de). Also ich will mir lieber die Bestätigung der Mods vorher holen, bevor ich das anhänge. |
Re: Fenster erstellen mit TP für Windows?
Zitat:
sage deinem Lehrer mal einen lieben Gruß. Er sollte sich gerade als Lehrer erst informieren bevor er solche Dinge von sich gibt ;-) Nur weil ein Programm alt ist bedeutet es nicht das die Lizenzverträge nicht mehr gültig sind. Soweit ich weiss gibt es bei Borland "nur" TurboPascal 5.5 kostenlos zum Downloaden. |
Re: Fenster erstellen mit TP für Windows?
Guck dir mal meine nonVCL Tutorials an:
![]() |
Re: Fenster erstellen mit TP für Windows?
Die hast du mir ja schon des öfteren ans Herz gelegt :zwinker:
Leider funktioniert das so in TPW nicht. Es gibt keine Windows und keine Messages Unit. Die Units heissen WinCrt (Für Text Ein- /Ausgabe, muss sein sonst geht Programm sowieso sofort aus), WinProcs und WinTypes. Er kennt auch TWndClassEx nicht, deswegen musses TWndClass sein. Genau so mit CreateWindowEx und FindWindowEx (Findwindow is ja irrelevant, ich sags nur so :)). Auch wParam und lParam gibt es nicht, deswegen habe ich es ja schon nach der Turbopascal Hilfe so umgeschrieben. Normalerweise benutzt man ja stdcall hinter der Funktion, aber das gibt es bei Turbopascal nicht. Es wird eben auch vernünftig kompiliert, aber beim Start dann halt... :( Ist wie als würd man stdcall nicht einbinden bei Delphi. //BTW: Ich hab ja auch schon Buttons, Edits etc. auf dem Konsolenfenster erstellen können, weil ich den Namen der Fensterklasse zu Hause nachgeguggt habe (TPWinCrt), nur halt...wie soll man ohne das Hauptfenster auf Aktionen reagieren :gruebel: |
Re: Fenster erstellen mit TP für Windows?
Zitat:
Es ist zwar schon eine ganze Weile her, dass ich ein Win16 Programm geschrieben habe, aber gibt es da nicht sowas wie callback (oder war das BC++ ?) Aber die WndProc muss auf alle mit far gekennzeichnet werden (ansonsten kennzeichnet TP sie mit Near). |
Re: Fenster erstellen mit TP für Windows?
YOU ARE THE MAN :mrgreen: :thumb:
Perfekt, bestens, SUPA !! Funzt alles. Hatte vorher schon versucht virtual und all son Kram dran zu hänge, aber das hat nich geklappt :mrgreen: //Edit: Is ja der Hammer, nich mal die Konsole wird angezeigt ... :hello: :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 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