AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster erstellen mit TP für Windows?

Ein Thema von Rastaman · begonnen am 17. Okt 2005 · letzter Beitrag vom 19. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#1

Fenster erstellen mit TP für Windows?

  Alt 17. Okt 2005, 15:44
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
So hab ichs gemacht:

Delphi-Quellcode:
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.
stdcall gibts bei Turbopascal nicht
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#2

Re: Fenster erstellen mit TP für Windows?

  Alt 17. Okt 2005, 18:37
Naja gut, ich habs geschafft n Button in die Konsole zu pflanzen, das is ja auch schon was
Allerdings hab ich jetz kp wie ich auf die Ereignisse reagieren soll

//Edit: Hier ma der Code:

Delphi-Quellcode:
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.
Das Edit wird auch auf der Konsole erstellt, aber WM_SETTEXT funktioniert nicht
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#3

Re: Fenster erstellen mit TP für Windows?

  Alt 19. Okt 2005, 16:17
Ich denk ma darauf weiß eh keiner ne Antwort, aber n letzter Versuch: *PUSH*
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

Re: Fenster erstellen mit TP für Windows?

  Alt 19. Okt 2005, 16:23
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
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#5

Re: Fenster erstellen mit TP für Windows?

  Alt 19. Okt 2005, 16:39
Zitat von franktron:
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

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
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.
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Fenster erstellen mit TP für Windows?

  Alt 19. Okt 2005, 17:16
Zitat von Rastaman:
...Ich meine mich entsinnen zu können, dass mein Lehrer gesagt hat, dass die Version so veraltet ist, dass sie kostenlos ist.
Hai Rastaman,

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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Fenster erstellen mit TP für Windows?

  Alt 19. Okt 2005, 18:17
Guck dir mal meine nonVCL Tutorials an: http://delphitutorials.luckie-online.de
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#8

Re: Fenster erstellen mit TP für Windows?

  Alt 19. Okt 2005, 19:06
Die hast du mir ja schon des öfteren ans Herz gelegt
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
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: Fenster erstellen mit TP für Windows?

  Alt 19. Okt 2005, 19:22
Zitat von Rastaman:
Normalerweise benutzt man ja stdcall hinter der Funktion, aber das gibt es bei Turbopascal nicht.
In TurboPascal gab es kein register als wird, wie der Programmiersprachennamen bereits preisgibt, die Aufrufart pascal benutzt, die dem stdcall entspricht.

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).
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#10

Re: Fenster erstellen mit TP für Windows?

  Alt 19. Okt 2005, 19:30
YOU ARE THE MAN
Perfekt, bestens, SUPA !!
Funzt alles. Hatte vorher schon versucht virtual und all son Kram dran zu hänge, aber das hat nich geklappt

//Edit: Is ja der Hammer, nich mal die Konsole wird angezeigt ...
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz