Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Vergabe von ID's und deren Auswirkung (https://www.delphipraxis.net/160576-vergabe-von-ids-und-deren-auswirkung.html)

EWeiss 20. Mai 2011 17:49

AW: Vergabe von ID's und deren Auswirkung
 
Zitat:

Zitat von Luckie (Beitrag 1102036)
Zitat:

Zitat von Phoenix (Beitrag 1102032)
Wenn man ID's durch die Gegend schiess ist das prozedural Runtergebolzt.

Die Aussage ist Unsinn. Ich glaube, hier hat noch niemand verstanden wozu diese IDs benutzt werden. Es wird eine Schaltfläche mit CreateWindow erstellt. Jetzt muss ich im Code auf dies Schaltfläche zugreifen können, unabhängig davon, ob ich objektorientiert arbeite oder nicht. Dazu habe ich zwei Möglichkeiten: 1. Ich kann mir das Handle merken, welches mir die Funktion zurückgibt. 2. Ich kann dem Steuerelement im Funktionsaufruf eine eindeutige ID geben, über die ich dann auf das Steuerelement zugreifen kann. Welche Methode man bevorzugt ist Geschmackssache. Wobei die erste Möglichkeit nicht möglich ist, wenn man seine Steuerelemente mit einem Ressourceneditor erstellt und nicht zur Laufzeit. Ob ich den restlichen Code jetzt objektorientiert erstelle oder prozedural, spielt keine Rolle. In beiden Fällen muss ich meine Steuerelemente irgendwie ansprechen können.

Gut beschrieben :thumb:
Deshalb auch!
Zitat:

Was ihr immer mit eurem Objektorientiert habt.:gruebel:
Zur besseren verständigung..
Delphi-Quellcode:
function GetMainItem(hOwner: HWND; UseID: integer): integer;

function TSkinEngine.GetMainItem(hOwner: HWND; UseID: integer): integer;
begin

  Result := GetDlgItem(hOwner, UseID);
end;
Über meine ID kann ich jetzt zu jederzeit mein Handle abfragen über die Spezifizierte ID_

Objektorientiert oder nicht ?
Noch näher dran geht wohl nicht! Spagetthicode na ja .. Warum auch nicht. Ist mal was anderes und nicht so fade.

gruss

FredlFesl 20. Mai 2011 22:47

AW: Vergabe von ID's und deren Auswirkung
 
Zitat:

Zitat von EWeiss (Beitrag 1102012)
Delphi-Quellcode:
PROP_IMAGE_BACK = 1;
GRID_IMAGE = PROP_IMAGE_BACK;
Funktioniert!

Delphi-Quellcode:
PROP_IMAGE_BACK = 1;
GRID_IMAGE = 1;
Funktioniert nicht!

obwohl beides letztendlich das gleiche Ergebnis liefert nämlich 1

gruss

Gib mal Code, wo das nicht funktioniert. Kann ja gar nicht sein.

Satty67 20. Mai 2011 23:22

AW: Vergabe von ID's und deren Auswirkung
 
Grob gesagt, funktioniert es nicht, wenn Du eine Konstante verwendest. Also einen Wert der durch falschen Speicherzugriff im Programmablauf überschrieben werden könnte.

Ich denke die Werte Deiner Konstanten hast Du schon kurz vor Verwendung mit dem Debugger überprüft.

Letztlich sind die geposteten Codezeilen syntaktisch korrekt, was Du selber weist, aber als Außenstehender wird man damit ohne weiteren Codeeinblick unmöglich auf den Fehler schließen können.

Jumpy 22. Mai 2011 21:28

AW: Vergabe von ID's und deren Auswirkung
 
OT?: Mal wieder doof nachgefragt. Woher weiß der Compiler eigentlich wenn man eine Konstante macht, was das für ein Typ ist?

const Willi = 1;

Ist Willi nun Integer, oder Byte,...

/OT.

Namenloser 22. Mai 2011 21:40

AW: Vergabe von ID's und deren Auswirkung
 
[OT]
Zitat:

Zitat von Jumpy (Beitrag 1102245)
OT?: Mal wieder doof nachgefragt. Woher weiß der Compiler eigentlich wenn man eine Konstante macht, was das für ein Typ ist?

const Willi = 1;

Ist Willi nun Integer, oder Byte,...

/OT.

Weiß er nicht. Solche Konstanten werden daher auch als „untypisiert“ bezeichnet. Sie funktionieren vereinfacht gesagt, indem der Compiler im Quellcode nach „Willi“ sucht und es durch „1“ ersetzt.
Bei typisierten Konstanten ist es anders:
Delphi-Quellcode:
const Willi: integer = 1;
In diesem Fall verhält sich Willi wie eine globale Variable (und kann auch zur Laufzeit manipuliert werden über Pointer oder einen Compilerschalter, der änderbare Konstanten erlaubt).
[/OT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 Uhr.
Seite 3 von 3     123   

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 by Thomas Breitkreuz