Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Systemkonstanten (https://www.delphipraxis.net/28749-systemkonstanten.html)

Carola 29. Aug 2004 17:38


Systemkonstanten
 
Hallo Allerseits,

vielleicht kann mir mal jemand auf die Sprünge helfen:

Mein Programm kennt keine Konsztanten wie MB_OKCANCEL oder fmOpenRead. Wo bekomme ich die her?

Vielen Dank im Voraus.

Grüße
Carola :roll:

DP-Maintenance 29. Aug 2004 17:44

DP-Maintenance
 
Dieses Thema wurde von "sakura" von "Internet / IP / LAN" nach "Windows API" verschoben.
Einmal posten in der richtigen Sparte reicht :roll:

jfheins 29. Aug 2004 17:52

Re: Systemkonstanten
 
Ich glaube, dass kaum einer weiß, was du meinst, aber ich glaube, was du meinen könntest.

Es könnte sein, dass "Konstanten wie MB_OKCANCEL" nur an bestimmten Stellen verstanden werden, nämlich da, wo sie hingehören.
(Wenn der Compiler sie immer noch nicht kennt, auf die richtige Syntax achten, das Problem genau beschreiben und mit Quellcode posten)

Carola 29. Aug 2004 18:04

Re: Systemkonstanten
 
Hallo Julius,

wenn ich diesen Befehl anwende
application.MessageBox(sfile,'Beispiel1_Steuerelem ente',MB_YESNOCANCEL);
bekomme ich ich folgende Fehlermeldung: Unbekannter Bezichner MB_YESNOCANCEL

Das gleiche erhalte ich bei
sf:=TFileStream.Create('C:\Datei.txt', fmOpenread);
Unbekannter Bezichner fmOpenRead

Viel Grüße
Carola

jfheins 29. Aug 2004 18:20

Re: Systemkonstanten
 
Bei mir geht das (die MessageBox) ohne Probleme

Carola 29. Aug 2004 18:29

Re: Systemkonstanten
 
Hallo Julius,

die Konstanten stehen in der Unit Windows und SysUtils. Die hatte ich unter Uses nicht eingebunden. Ich bin leider kein eingefleischter Delphianer, so daß ich nach solchen Sachen leider noch suchen muß.

Trotzdem Danke für Deine Mühe.

Carola

Christian Seehase 30. Aug 2004 22:46

Re: Systemkonstanten
 
Moin Carola,

nur zur Info:
Es gibt einige Wege um an die entsprechende Unit zu gelangen.
Zum einen kann schlicht F1 helfen. Bei einer Funktion werden meist auch die Konstanten, und deren Unit genannt.
Sollte es sich um API Konstanten handeln, so steht dort meist eine Quickinfo, in der u.a. die Header Datei genannt ist. Diese ist oft auch als Unit in Delphi deklariert.
Wenn Du mindestens eine Pro Version hast, kannst Du auch in den Sourcen der Units suchen, wo diese deklariert ist.
Bei Konstanten (und auch anderen API Spezifika), die in Delphi nicht deklariert sind müsstest Du dann auf die Windows Header Dateien zurückgreifen. Diese bekommt man mit dem PSDK.

himitsu 31. Aug 2004 07:03

Re: Systemkonstanten
 
Da Konstannte ja irgendwo deklariert sind, muß natürlich auch die entsprechende Datei (wo diese drin ist) in' Programm eingebunden sein, sonst kann sie ja nicht gefunden werden.


Wenn aber wirklich nicht's geht, dann kannst du ja auch mal auf solche Konstanten verzichten und gibst direkt deren Wert an, oder definierst dir solche Konstanten einfach selber.

Die entsprechenden Werte dafür kannst du ja schließlich auch von anderen, hier im Forum, erfahren.

Code:
[u][b][color=red]aus SysUtils[/color][/b][/u]

  { File open modes - for Windows }
  [color=red]fmOpenRead      = $0000;[/color]
  fmOpenWrite     = $0001;
  fmOpenReadWrite = $0002;

  fmShareCompat   = $0000 platform; // DOS compatibility mode is not portable
  fmShareExclusive = $0010;
  fmShareDenyWrite = $0020;
  fmShareDenyRead = $0030 platform; // write-only not supported on all platforms
  fmShareDenyNone = $0040;
Code:
[u][b][color=red]aus Windows[/color][/b][/u]

  { MessageBox() Flags }
  MB_OK = $00000000;
  [color=red]MB_OKCANCEL = $00000001;[/color]
  MB_ABORTRETRYIGNORE = $00000002;
  MB_YESNOCANCEL = $00000003;
  MB_YESNO = $00000004;
  MB_RETRYCANCEL = $00000005;

  MB_ICONHAND = $00000010;
  MB_ICONQUESTION = $00000020;
  MB_ICONEXCLAMATION = $00000030;
  MB_ICONASTERISK = $00000040;
  MB_USERICON = $00000080;
  MB_ICONWARNING                = MB_ICONEXCLAMATION;
  MB_ICONERROR                  = MB_ICONHAND;
  MB_ICONINFORMATION            = MB_ICONASTERISK;
  MB_ICONSTOP                   = MB_ICONHAND;

Also z.B:
Delphi-Quellcode:
Application.MessageBox(sfile, 'Beispiel1_Steuerelemente', 3{=MB_YESNOCANCEL});
sf := TFileStream.Create('C:\Datei.txt', 0{=fmOpenRead});


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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