AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Zu viele Parameter bei SizeOf
Thema durchsuchen
Ansicht
Themen-Optionen

Zu viele Parameter bei SizeOf

Ein Thema von venice2 · begonnen am 19. Okt 2021 · letzter Beitrag vom 20. Okt 2021
Antwort Antwort
venice2
(Gast)

n/a Beiträge
 
#1

AW: Zu viele Parameter bei SizeOf

  Alt 20. Okt 2021, 08:34
Zitat:
Durch das WITH wird nunmal das 'SizeOf' von 'NIconD' verwendet und nicht das von System...
Wenn diese Abweichen, dann wird gemeckert.....
Du hast schon recht..

Mein Einwand aber dazu warum wird unter 32Bit, selber Code, dann nicht gemeckert?
Das widerspricht sich doch alles.

Aber danke habe es geändert waren nur 2 im ganzen Code
Zitat:
KEIN 'WITH' verwenden!
Jo, man ist halt ein Gewohnheitstier.

Geändert von venice2 (20. Okt 2021 um 08:41 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.073 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Zu viele Parameter bei SizeOf

  Alt 20. Okt 2021, 08:46
Mein Einwand aber dazu warum wird unter 32Bit, selber Code, dann nicht gemeckert?
Das widerspricht sich doch alles.
Hast du TNotifyIconData unter Win32 irgendwo anders definiert?
Wohin springt er denn bei der Suche nach der Declaration für Win32?

Folgendes kompiliert in Delphi 10.4 unter Debug-Wind32 NICHT:

Delphi-Quellcode:
program Project6;

{$APPTYPE CONSOLE}

{$R *.res}


uses
    System.SysUtils,
    Winapi.ShellAPI;

var
    NIconD: TNotifyIconData;

begin
    try
        with NIconD do
        begin
            cbSize := SizeOf(TNotifyIconData); // [dcc32 Error] Project6.dpr(19): E2034 Too many actual parameters
        end;
    except
        on E: Exception do
            Writeln(E.ClassName, ': ', E.Message);
    end;
en
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#3

AW: Zu viele Parameter bei SizeOf

  Alt 20. Okt 2021, 08:57
Zitat:
Hast du TNotifyIconData unter Win32 irgendwo anders definiert?
Wohin springt er denn bei der Suche nach der Declaration für Win32?
Nein aber eine andere Delphi Version D2010.

Dort verwendet er mit With die System Unit und nicht die ShellAPI.
Habe eine neue Version von GdipClock64 hochgeladen mit den Änderungen und gleichzeitig die Anzeige des Datum verbessert.

Delphi-Quellcode:
program Project6;

{$APPTYPE CONSOLE}

uses
    SysUtils,
    ShellAPI;

var
    NIconD: TNotifyIconData;

begin
  try
    try
        with NIconD do
        begin
            cbSize := SizeOf(TNotifyIconData); //Kompiliert
        end;
    except
        on E: Exception do
            Writeln(E.ClassName, ' ', E.Message);
    end;
  finally
    Writeln('D2010 - ', 'No error');
  end;
end.
D2010 nicht gleich Delphi 10.4

Geändert von venice2 (30. Okt 2021 um 18:03 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
981 Beiträge
 
Delphi 6 Professional
 
#4

AW: Zu viele Parameter bei SizeOf

  Alt 20. Okt 2021, 17:12
Hmm..

Zitat:
Hast du TNotifyIconData unter Win32 irgendwo anders definiert?
Wohin springt er denn bei der Suche nach der Declaration für Win32?
Nein aber eine andere Delphi Version D2010.
Und da haben wir wohl den Grund (Delphi 2010)..
Denn dort gab es glaube ich noch keine Records mit Funktionen und deshalb auch kein SizeOf im Record...
Somit wurde SizeOf von System seitens des Compilers genommen.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#5

AW: Zu viele Parameter bei SizeOf

  Alt 20. Okt 2021, 17:27
Hmm..

Zitat:
Hast du TNotifyIconData unter Win32 irgendwo anders definiert?
Wohin springt er denn bei der Suche nach der Declaration für Win32?
Nein aber eine andere Delphi Version D2010.
Und da haben wir wohl den Grund (Delphi 2010)..
Denn dort gab es glaube ich noch keine Records mit Funktionen und deshalb auch kein SizeOf im Record...
Somit wurde SizeOf von System seitens des Compilers genommen.
Nun ja warum soll ich für 32 Bit "D11" nutzen wenn dadurch die EXE sich um 2MB vergrößert sehe da keinen Sinn drin.
Ja ich weiß wir haben Terrabyte zur Verfügung spielt aber keine rolle für mich.

Dann ist das wohl geklärt liegt an der jeweiligen Delphi Version.
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:32 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