Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Startbutton aktivieren/deaktivieren (https://www.delphipraxis.net/46931-startbutton-aktivieren-deaktivieren.html)

Marphy 3. Jun 2005 15:20

Re: Startbutton aktivieren/deaktivieren
 
Hallo ihr beiden,

Zitat:

Zitat von alcaeus
das Schluesselwort const wird verwendet, um dem Programmierer der die Routine verwendet zu zeigen, dass ganz bestimmt nichts an der Variable geaendert wird. AFAIR laesst Delphi in dem Fall keine Zuweisung an die Variable innerhalb der Funktion zu. Bei einer "normalen" Uebergabe [Foo(bar: Integer)] ist dies nicht der Fall.

:gruebel: Ich kenne das Ganze so...
Param: Typ: Param stellt eigene Variable dar, Wert wird in diesen Param von der Übergabe kopiert, d.h. Änderungen haben keine Auswirkungen auf die ursprünglichen Übergabevariable.
var Param: Typ Param ist eigentlich ein Pointer, der auf Übergabe zeigt. Änderungen wirken sich auch auf Übergabevariable aus.
const Param: Typ Param ist eigentlich ein Pointer, der auf Übergabe zeigt. Änderungen dürfen jedoch nicht vorgenommen werden.

Wenn dem nicht so ist, klärt mich bitte auf :-D

Zitat:

Delphi braucht dann auch keinen Speicher, um eine Kopie des übergebenen Strings bereitzustellen, da dieser nicht geändert werden kann.
Sorry, aber das ist in jedem Fall Quatsch! Entweder es wir dein Pointer übergeben (der benönigt 4 Byte) oder der ganze Wert wird kopiert, in dem Falle wird SizeOf(Typ)-Speicher benötigt...

Gruß, Marco

JasonDX 3. Jun 2005 17:16

Re: Startbutton aktivieren/deaktivieren
 
Ich hab jetzt folgendes kleines testprogramm geschrieben
Delphi-Quellcode:
procedure h(a: integer);
begin
  ShowMessage(IntToStr(a));
end;

procedure a({const/var/nix}j: integer); assembler;
asm
  push eax
  call h
  pop eax
end;
folgende Aufrufe brachten die ergebnisse (bei parameter 123):
  • Header: nix
    Ergebnis: 123
  • Header: const
    Ergebnis: 123
  • Header: var
    Ergebnis: Speicheradresse

Daraus schließe (ich zumindest), dass der Const-parameter also nur dem compiler sagt, dass dieser wert nie verändert werden wird, aber im eigentlichen bei der parameterübergabe kein unterschied liegt (zwischen const und nix). bei var wird hingegen klarerweise die adresse mitgegeben.
Es kann aber auch gut sein, dass der const-parameter durch den compiler optimiert wird, dass bei Datentypen > Pointer der Zeiger darauf mitgegeben wird, nachdem der wert sowieso nicht veränder wird.

MagicAndre1981 3. Jun 2005 17:45

Re: Startbutton aktivieren/deaktivieren
 
Zitat:

Zitat von alcaeus
Hallo Pierre,
Das Ergebnis ist wie erwartet: SetStartBtnEnabled(True) aktiviert den Startbutton, SetStartBtnEnabled(False) deaktiviert ihn. Getestet auf WinXP SP1

Dem kann ich nur zustimmen. Der Code funzzt super.

@all Warum diskutiert ihr das mit dem const hier aus. Macht doch einen neuen Thread auf.
:shock: Und ein Mod macht bei dem OT auch noch mit :shock:

Marphy 3. Jun 2005 18:44

Re: Startbutton aktivieren/deaktivieren
 
Hallo,
danke für deine Antowort, Mike!

Zitat:

Zitat von Chimaira
Es kann aber auch gut sein, dass der const-parameter durch den compiler optimiert wird, dass bei Datentypen > Pointer der Zeiger darauf mitgegeben wird, nachdem der wert sowieso nicht veränder wird.

Übergebe doch mal einen String! Bei mir wird nur bei var ein Pointer übergeben, sonst nicht... Also wäre meine Frage an sich geklärt. Danke!
Ach ja: gibt's dann eigentlic auch sowas wie ein varconst? :stupid:

@André:
Sorry, schon gut! :zwinker: Aber deswegen einen eigenen Thread aufmachen... Wär auch doof. :-D

Gruß, Marco

alcaeus 3. Jun 2005 18:46

Re: Startbutton aktivieren/deaktivieren
 
Zitat:

Zitat von Marphy
Ach ja: gibt's dann eigentlic auch sowas wie ein varconst? :stupid:
[...]
Aber deswegen einen eigenen Thread aufmachen... Wär auch doof. :-D

Bitte mach das doch. Der Thread ist jetzt schon OT genug, wir muessen es nicht noch weiter treiben.

Greetz
alcaeus

Zacherl 3. Jun 2005 18:47

Re: Startbutton aktivieren/deaktivieren
 
Um auch noch meinen Senf dazuzugeben: :-D

Das Deaktivieren des Startbuttons verhindert keinesfalls das öffnen des Startmenüs z.b. mit der Windows Taste, wenn es das ist, was du bezwecken willst.

Florian

PierreB 4. Jun 2005 09:23

Re: Startbutton aktivieren/deaktivieren
 
Zitat:

Zitat von Florian Bernd
Um auch noch meinen Senf dazuzugeben: :-D

Das Deaktivieren des Startbuttons verhindert keinesfalls das öffnen des Startmenüs z.b. mit der Windows Taste, wenn es das ist, was du bezwecken willst.

Florian

Hallo,

ja danke, hagtte ich auch schon rausgefunden. Ich hab die Taskleiste dann jetzt einfach ausgeblendet, und wenn ein User doch noch ins Startmenü will kann er immernoch nen Shortcut drücken.

Vielen Dank für eure Antworten :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr.
Seite 2 von 2     12   

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