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 IP-Edit kein Tabstop (https://www.delphipraxis.net/48736-ip-edit-kein-tabstop.html)

Icydragon 29. Jun 2005 18:46


IP-Edit kein Tabstop
 
Habe folgendes Problem:

Wenn ich mit Hilfe von CreateWindowEX() ein IP edit-Feld erstelle, klappt das zuerst ganz gut.
Es tauch auf (sogar da, wo ich will) und lässt sich mit der Maus anwählen. Eintragen kann ich IP-Adressen auch...

naja, aber ich bekomme keinen Tabstop auf das Editfeld hin.
wenn ich das IP-Edit erzeuge, es mit der Maus anklicke und dann versuche mit der Tastatur (Cursor oder Tab) in das nächste (z.B. ein Edit-Feld) zu kommen, klappt das, allerdings komme ich per Tastatur nicht wieder in das IP-Edit zurück.
Ebenfalls kann ich mit Cursor-rechts auch nicht in das nächste IP-Segment. Stattdessen hüpft der Focus auf das nächste element, das mit den Delphi-Komponenten erzeugt wurde.

Was mache ich falsch?
Ich glaube nicht, dass es am Aufruf selbst liegt, sondern eher daran, dass die anderen Fenster mit den Delphi-Komponenten erzeugt wurden, und das IP-Edit über non-VCL.

MfG

Icydragon

Delphi-Freak 29. Jun 2005 19:08

Re: IP-Edit kein Tabstop
 
:party: Erstmal herzlich willkommen in der DP :party:

Warum erstellst du das IP-Edit-Feld über CreateWindowEX? Wäre es nicht einfacher, das so zu realisieren:
Delphi-Quellcode:
var ipfeld: TIPEdit; //Oder wie die Klasse auch heißt
begin
  ipfeld := TIPEdit.Create;
  ipfeld.parent := Form1;
end;
:gruebel:

Andere Frage: Funktioniert es, wenn du das IP-Feld zur Designtime hineingibst?

Was mir noch zum Thema Tabstop kommen würde: Da gibt es die Eigenschaften TabStop bzw. TabOrder. Setze mal TabStop (wenn es das geben sollte) auf True.

Hoffe ich konnte dir etwas behilflich sein :wink:

LG & noch viel Spaß und Erfolg in der DP,
Delphi-Freak

Edit: Formatierung angepasst

Icydragon 29. Jun 2005 19:16

Re: IP-Edit kein Tabstop
 
Vielen Dank für die freundliche Begrüßung.

zum Thema:
Es gibt leider keine Klasse TIPEdit oder ähnlich. Das IP-Editfeld gibt es nur in der WinAPI.
Daher muss ich es über CreateWindowEx() aufrufen.
Und die Eigenschaften TabStop und TabOrder sind definierte Eigenschaften der Delphi-VCL.
Wahrscheinlich müsste ich diese selbst definieren und per Message an das IP-Edit senden, allerdings bin ich mir nicht ganz so im klaren darüber, wie das funktioniert.



Mfg
Icydragon

Delphi-Freak 29. Jun 2005 19:35

Re: IP-Edit kein Tabstop
 
Achso, naja, wie man so etwas selbst definieren könnte und per Message schicken könnte, da habe ich überhaupt keine Ahnung. Tut mir dann leid :pale:

Ich wüsste allerding eine andere Möglichkeit. Bei der JVCL ist eine Komponente mit Namen »TJvIPAddress« dabei. Die dürfte den gleichen Zweck erfüllen. Da gibts auch TabStop und TabOrder und sogar TabThroughField, wahrscheinlich also tabben durch die einzelnen Felder zwischen den Punkten...

Mfg, Delphi-Freak

marabu 29. Jun 2005 19:36

Re: IP-Edit kein Tabstop
 
Hallo IcyDragon,

vielleicht hilft es, wenn du beim CreateWindowEx() den window style WS_TABSTOP mitgibst.

Grüße vom marabu

Icydragon 29. Jun 2005 19:52

Re: IP-Edit kein Tabstop
 
Hallo Marabu

Einen Programmierer erkennt man daran, dass die Programmier-Konventionen für Beschriftungen auch an Nicknamen weitergegeben werden: Hier z.B. IcyDragon (könnte fast ne Var sein) :-D
kleiner Scherz. net böse sein ;)

Ne, leider funktioniert das auch nicht. Habe es schon probiert.

MfG
Icydragon

marabu 29. Jun 2005 23:06

Re: IP-Edit kein Tabstop
 
Also ich habe das jetzt mal nachgestellt und komme zu dem Schluss, dass du das IP Address Control subclass'en musst.

marabu

Nachtrag: In erster Linie wirst du wohl dem Dialog, in dem du das Control untergebracht hast, die Behandlung von VK_TAB wegnehmen müssen. Festlegen welche VCL-Controls Vorgänger und Nachfolger in der TabOrdnung sein sollen und dann im geeigneten Augenblick Windows.SetFocus(hIPAC) ...


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