AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte CTL_CODE für Delphi als kleines Tool
Thema durchsuchen
Ansicht
Themen-Optionen

CTL_CODE für Delphi als kleines Tool

Ein Thema von unheilig1977 · begonnen am 18. Nov 2010 · letzter Beitrag vom 21. Nov 2010
Antwort Antwort
unheilig1977
Registriert seit: 28. Okt 2010
Hallo,

ich habe mir ein kleines Tool programmiert, um Konstanten für Delphi zu definieren, die in C durch ein CTL_CODE-Makro erzeugt werden.

Das Tool erzeugt einen String im Hexadezimalformat $00000000, den man in die Zwischenablage kopieren kann, um ihn dann in Delphi als Wert der Konstante einzufügen.

Vielleicht kann ich damit dem ein oder anderen die Arbeit etwas erleichtern.

Über Kritik - positive wie negative - würde ich mich freuen.

Gruß unheilig1977
Miniaturansicht angehängter Grafiken
ctlcode.jpg  
Angehängte Dateien
Dateityp: zip ctlcode.zip (225,3 KB, 13x aufgerufen)
 
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#2
  Alt 18. Nov 2010, 20:43
* die Eingabe-Edits lassen sich nicht wirklich gut bediehnen
- Beim Löschen und Eingeben von Zahlen wird dieses irgendwie verändert/aufgefüllt.

* der "Makro ausführen"-Button ist unpraktisch
- laß es doch gleich bei Eingabe berechnen
- bei einem Fehler (z.B. ungültige Werte in den Edits) einfach nur "Fehler" im Ausgabefeld anzeigen (keine Exception)

* das Ausgabefeld würde sich als ReadOnly-Edit nicht schlecht machen

* joar, also ich hätte sowas schon ein paar Mal gebrauchen können
(von Hand ausrechnen ist eher umständlich)
- aber es wäre praktischer, wenn man dieses z.B. als Tool von Delphi aus aufrufen kann
- als Delphi-PlugIn über die OTA wäre wohl zu aufwändig, aber man kann es einfach in die Tools-Liste aufnehmen lassen

Kannst ja die Beschreibung in dein Programm oder in die Programmbeschreibung mit aufnehmen ... z.B.:
Zitat:
> Delphi > Tools > Tools konfigurieren... > Hinzufügen...
Titel: CTL_CODE-Editor
Programm: Pfad zum Programm
Und schon kann man über Delphi > Tools > CTL_CODE-Editor dein Programm direkt nutzen.

[edit]
Ahhh, jetzt hab ich kappiert, wie das mit der Eingabe geht.
Wollte Zahlen/Zeichen mitten im Wert einfügen, also an der Cursorposition, nur daß die Zeichen nicht dort auftauchten.


Tipp:
- Lass' einfach das Verändern der Werte in den Eingabeedits sein.
[edit] oder wenigstens abstellbar, denn Einige mögen solche Eingabemethoden nicht so wirklich [/edit]
- Lass' eigene Werte zu ($hex, num und auch 0xhex)
S := StringReplace(Trim(Edit1.Text), '0x', '$', []); und dann über Delphi-Referenz durchsuchenTryStrToInt prüfen, ob der Wert gültig ist.
- Es wäre auch praktisch, wenn man Konstanten in die Edits kopieren kann.
einfach eine INI anlegen, welche man auch selber erweitern kann.
Also beim Übersetzen erstmal schauen, ob die INI existiert, ob sich der Wert darin befindet und wenn nicht, dann eben versuchen als Zahl zu interpretieren.
z.B. so
Code:
[DEVICETYP]
FILE_DEVICE_PROTOCOL=$8000
...
[FUNCTION]
...
dann könnte man auch dieses übersetzen:
Code:
CTL_CODE(FILE_DEVICE_PROTOCOL, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
- Und wenn du ganz krass drauf bist, dann kannst'e auch noch einen Parser mit
einbauen, welchem man vorhergehenden Code mitgibt und dieses auf die Eingabefelder verteilt.
Mußt ja nur nach "CTL_CODE(" und ")" entfernen, dann an den "," aufteilen und die Einzelteile in die Edits und Checkboxen einfügen.


[add]
ach ja ... Willkommen an Board

Geändert von himitsu (18. Nov 2010 um 21:09 Uhr)
  Mit Zitat antworten Zitat
unheilig1977

 
Delphi 2005 Personal
 
#3
  Alt 18. Nov 2010, 21:16
Danke für Anregungen himitsu ,

bin mit den Eingabe-EDITs auch nicht wirklich zufrieden und werde diese auf jeden Fall noch mal überarbeiten.

Auch die Idee mit den vordefinierten DEVICETYP-Konstanten ist gut.

Werde das Tool noch ordentlich überarbeiten - wenn Zeit ist.

Das mit dem gleich rechnen, hab ich eingebaut.
Angehängte Dateien
Dateityp: zip ctlcode.zip (224,2 KB, 4x aufgerufen)
Jörg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#4
  Alt 18. Nov 2010, 21:34
Du kannst deinen ersten Beitrag auch bearbeiten und dort die aktuelle Datei hochladen.
So findet jeder gleich das Aktuelle und muß nicht erst den ganzen Thread durchsuchen.

Ein Mod wird dieses vermutlich auch bald mal nach "Software-Projekte der Mitglieder" verschieben (paßt da bestimmt besser rein), dort hast du dann das Recht auch noch nach 24 Stunden einen Beitrag zu bearbeiten, um so immer schön das Wichtigste/Aktuellste im ersten Post zu verewigen.
  Mit Zitat antworten Zitat
18. Nov 2010, 21:36
Dieses Thema wurde am "18. Nov 2010, 22:36 Uhr" von "Matze" aus dem Forum "Win32/Win64 API (native code)" in das Forum "Software-Projekte der Mitglieder" verschoben.
unheilig1977

 
Delphi 2005 Personal
 
#6
  Alt 18. Nov 2010, 21:49
Danke für den Tipp.

Ist am Anfang immer ein wenig schwierig, den richtigen Thread zu erwischen.
Hoffe, daß das mit dem Verschieben klappt, will noch einiges ändern und dann natürlich auch die aktuelle Version einstellen.

Schon geschehen!
Doch lieber erst lesen, dann schreiben:
Jörg

Geändert von unheilig1977 (18. Nov 2010 um 21:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

 
Delphi XE5 Professional
 
#7
  Alt 20. Nov 2010, 00:36
Bei Devicetyp und Function Code kann man jeweils 32bit Werte eingeben. Das ist nicht plausibel. Der Devicetyp belegt 16 und der Function Code 12 bit.
  Mit Zitat antworten Zitat
unheilig1977

 
Delphi 2005 Personal
 
#8
  Alt 21. Nov 2010, 16:25
Hallo Garfield,

hast recht mit Deinem Einwand - ist einer der Fehler in der ersten Version.
Bin gerade mit der Überarbeitung beschäftigt und werde auch dies beachten und einbauen.

Zitat:
max DEVICETYP = $FFFF
max FUNCTION = $FFF
Jörg
  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 02:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz