Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi was machen mit den Hangups ? Konsolenprobleme die zweite ^ ^ (https://www.delphipraxis.net/37700-machen-mit-den-hangups-konsolenprobleme-die-zweite-%5E-%5E.html)

Assarbad 12. Jan 2005 20:33

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
Zitat:

Zitat von hboy
kleine zwischenbilanz:
Das hier artet irgendwie in eine code- und Textschlacht aus. der Lösung bin ich allerdings noch nicht viel näher gekommen.

Also, in meinem D5 (ich habe nur D3, 4 und 5) kann ich kein TCustomWnd finden. Da also du selber das implementiert haben mußt, kann ich dir auch nicht sagen, wo du die Schleife versteckt hast. ABER alternativ zur Modifikation der Schleife könntest du doch die Fensterfunktion subclassen und alle für dich wichtigen Nachrichten abfangen.

hboy 12. Jan 2005 20:39

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
*kopfauftastahau* maaan was sag ich denn die ganze zeit...

Delphi-Quellcode:
unit CCL;

///////////////////////////////////////////////////
//  Custom Component Library                    //
//                                               //
//  Entwicklung eigener Klassen ohne die VCL    //
//                                               //
//  Autor: hboy          2004 / 2005            //
///////////////////////////////////////////////////

interface
  uses WndClass, MenuClass, PanelClass, NCDefWndClass, StaticClass;

  type TWnd       = class(TCustomWnd);
  type TWndControl = class(TCustomWndControl);
  type TWndChild  = class(TCustomWndChild);

  type TWndMenuItem = class(TCustomWndMenuItem);
  type TWndMenuFrame = class(TCustomWndMenuFrame);

  type TWndPanel = class(TCustomWndPanel);
  type TWndButton = class(TCustomWndButton);
  type TWndSwitch = class(TCustomWndSwitch);

  type TWndProtocolStatic = class(TCustomWndProtocolStatic);

implementation

end.

hboy 12. Jan 2005 20:43

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
also Oli...

erst mal danke dass du dich immer noch damit rumquälst. Nich jeder hat so viel geduld :thumb:

dass du mir unterstellt hast ich müsste mir erst mal grundlagenwissen aneignen is schon bissl herb aba kay...

also wenn ich die Konsole in eine vcl-anwendung reinschmeiß ( welch ironie, nich ^^ ) dann tut das natürlich wegen der Message-Loop in Application.

Das Problem bleibt immer noch das die Message behandlung in dem extra thread nicht funzt, und ich kein plan hab wie ich es anstellen soll. Vielleicht doch das Konsolenfenster in einem völlig separaten thread basteln und Messages behandeln ? Und was ist dann mit der Message-loop beim ConsoleIn ?

Assarbad 12. Jan 2005 21:02

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
Okay, rekapitulieren wir mal die Regeln für Fenster. Die Message-Loop muß im selben Thread sein, welcher das Fenster erstellt. Ist dies bei dir der Fall? IMO nein.

Im Platform SDK steht:
An application must remove and process messages posted to the message queues of its threads. A single-threaded application usually uses a message loop in its WinMain function to remove and send messages to the appropriate window procedures for processing. Applications with multiple threads can include a message loop in each thread that creates a window.


Zitat:

Zitat von hboy
Vielleicht doch das Konsolenfenster in einem völlig separaten thread basteln und Messages behandeln ?

So sieht's aus ...

Daß mit den Grundlagen war sicherlich nicht böse gemeint, aber unter Windows gilt nunmal: kein Fenster ohne Nachrichtenschleife.

hboy 12. Jan 2005 21:04

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
bis jetzt hatte ich ja eine "bei Bedarf" ;)

Also jetzt bin ich nur noch gespannt ob ich das mit den Treiberfunktionen gebacken krieg ^^ wenn die die funktionen in nem anderen thread aufrufen müssn

hboy 12. Jan 2005 21:06

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
achja... platfrom sdk ? sowas gibts :spin2: uiuiui ;) *grins* sowas wäre auch mal nich schlecht *g*

PS: bin ja noch gottfroh dass du mich nich nach MSDN-Land geschickt hast ^^

Assarbad 12. Jan 2005 21:16

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
Zitat:

Zitat von hboy
achja... platfrom sdk ? sowas gibts :spin2: uiuiui ;) *grins* sowas wäre auch mal nich schlecht *g*

PS: bin ja noch gottfroh dass du mich nich nach MSDN-Land geschickt hast ^^

Schick ne PN (mit Snailmail-Adresse) und du bekommst die beiden aktuellen PSDKs zugeschickt. Frei Haus.

hboy 12. Jan 2005 21:20

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
http://www.microsoft.com/msdownload/...ULLInstall.htm

das da ?

hm muss gehn. morgen mathe Klausur. cya&thx

Assarbad 12. Jan 2005 21:23

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
Zitat:

Zitat von hboy
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm

Jupp, das für XP SP2 und das für Windows 2003 Server (und alle anderen Windowsversionen außer XP SP2).

hboy 15. Jan 2005 12:02

Re: was machen mit den Hangups ? Konsolenprobleme die zweite
 
OK.
------------------------------------
Frage1: gibt es eine Möglichkeit Messages von fremden Threads zu holen und zu verarbeiten ?

Es schaut so aus, dass im Hauptthread ein Fenster erzeugt wird, und wenn der Hauptthread hängt, sollen die Messages an das Fenster weiterhin abgearbeitet werden.
Packe ich die Erzeugung des Fensters in einen separaten Thread, ergibt sich das Problem, dass wiederum von dem Thread mit Fenster auf globale Variablen (Input und Output) zugegriffen (AssignDev) wird, was allerdings zu Fehlern führt.

Frage2: wie löse ich das Problem wenn es keine Möglichkeit zu Frage1 gibt ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr.
Seite 4 von 5   « Erste     234 5      

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