Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Editfehld einer pageSeite zuordnen (https://www.delphipraxis.net/75510-editfehld-einer-pageseite-zuordnen.html)

mimi 20. Aug 2006 16:27


Editfehld einer pageSeite zuordnen
 
Hallo,
wie kann ich einem Editfehld "sage" das es nur auf Sheet1 sein soll und nicht auf sheet2 ?

(ich fange erst gerade an mit winapi zu arbeiten und bin am verzeifeln) :(

Christian Seehase 20. Aug 2006 16:52

Re: Editfehld einer pageSeite zuordnen
 
Moin Michael,

also wenn das so funktioniert wie mit VCL, müsstest Du den Parameter hWndParent für das Editfeld bei CreateWindow/CreateWindowEx mit dem Handle des Sheets füllen.

mimi 20. Aug 2006 17:01

Re: Editfehld einer pageSeite zuordnen
 
leider geht das nicht....
(keine wirkung), hier mein code:
Delphi-Quellcode:
procedure CreateSheeats(hwnd:HWND;Name:String);
var
  i:Integer;
  rect:TRect;
begin
  SetLength(tabs,2);
  tabs[0].text:='test1';
  tabs[1].text:='test2';
  //hTab := GetDlgItem(hwnd, 0);
   
   hTab:=CreateWindowEx(DS_CONTROL , 'SysTabcontrol32', '' ,WS_CHILD or WS_VISIBLE
    ,0 ,0, WindowWidth, WindowHeight, hwnd, 0, 0, nil);

   for i:=0 to high(tabs) do begin
    tcItem.mask:=TCIF_TEXT;
    tcItem.pszText:=Pointer(tabs[i].text);
    tabs[i].index:=CreateDialog(HInstance,Pchar(tabs[i].text),htab,@tabdlgfunc);

    SendMessage(hTab, TCM_INSERTITEM, i, Integer(@tcItem));
  end;
 

  SendMessage(htab, TCM_GETITEMRECT, 0, Longint(@rect));

//  if tabs[1].index = 0 then MessageBox(hwnd,PChar('TEST'),PCHAR('TEST!'),0);
  SetWindowPos(tabs[0].index, 0, 50, (rect.Bottom - rect.Top) + 50, 0, 0,
  SWP_NOSIZE or SWP_NOZORDER or SWP_SHOWWINDOW );
  hwndMemo1:=CreateWindowEx(WS_EX_STATICEDGE, 'Edit', '', WS_VISIBLE or WS_HSCROLL or WS_VSCROLL or
  WS_CHILD or ES_NOHIDESEL or ES_MULTILINE or ES_AUTOVSCROLL or ES_AUTOHSCROLL, 0, 30, WindowWidth-10, WindowHeight-80, htab, 0, 0, nil);
//  SetParent(hwndMemo1,htab);
end;

mimi 20. Aug 2006 17:15

Re: Editfehld einer pageSeite zuordnen
 
der index von tabs[0].index ist immer 0 kann mir jemmand sagen warum?
ich wette dann geht das auch mit den zuordnen.
oder muss ich wie im beispiel von Lucki per hand alle dialoge sichtbar bzw. unsichtbar machen ?

Der_Unwissende 20. Aug 2006 17:58

Re: Editfehld einer pageSeite zuordnen
 
Zitat:

Zitat von mimi
Hallo,
wie kann ich einem Editfehld "sage" das es nur auf Sheet1 sein soll und nicht auf sheet2 ?

Hi,
wäre doch irgendwie hilfreich wenn du sagen würdest was genau sheet1 und sheet2 sind.

Zitat:

Zitat von mimi
der index von tabs[0].index ist immer 0 kann mir jemmand sagen warum?

Nun ja, du zeigst nirgends wie du tabs[0] überhaupt zuweist, also denke ich mal: Nein, keiner!

Gruß Der Unwissende

mimi 20. Aug 2006 21:29

Re: Editfehld einer pageSeite zuordnen
 
Sheet sind TabSheet von PageControl

und index wird hizugewiesen:
Delphi-Quellcode:
tabs[i].index:=CreateDialog(HInstance,Pchar(tabs[i].text),htab,@tabdlgfunc);
hatte ich auch gepostet....

DGL-luke 20. Aug 2006 22:42

Re: Editfehld einer pageSeite zuordnen
 
:gruebel:

tabs[0] -> das tab mit dem index 0
tabs[0].index ist ja dann...?! 0? Und wo ist jetzt das Problem :stupid:

EDIT:
Delphi-Quellcode:
SetWindowPos(tabs[0].index, 0, 50, (rect.Bottom - rect.Top) + 50, 0, 0,
das kann ja nicht gehen...

SetWindowPos verlangt doch hoffentlich das Handle, oder? ja, tut es. also musst du da auch das handle übergeben.

und für dein parent-problem:

du setzt bei CreateWindowEx ganz unten das Tabcontrol und nicht das Tabsheet als parent, kann das sein?

mimi 21. Aug 2006 09:54

Re: Editfehld einer pageSeite zuordnen
 
ja ich glaube du hast recht.... aber wie kann ich das ziel erreichen ?

und Tabs[1].index ist auch gleich 0 wenn hier eins stehen würde. könnte ich damit noch was anfangen... aber da steht auch nur 0 drin !

DGL-luke 21. Aug 2006 10:38

Re: Editfehld einer pageSeite zuordnen
 
naja.... warum benutzt du denn CreateDialog? Das kann ich gar nicht nachvollziehen.
wie ist dein tabs-array denn deklariert?

mimi 21. Aug 2006 12:41

Re: Editfehld einer pageSeite zuordnen
 
weil im tutorial von luckie das auch so gemacht wird...
mein array ist zu defniert:

Delphi-Quellcode:
  Ttab = record
    text:String;
    index:Integer;
  end;

  hMainMenu,hSubMenu    : HMENU;
  tabs:array of Ttab;
  tcItem: TTCItem;
  hTab:THandle;
  hwndMemo1:hwnd;
gibt es sowas wie AddTabToPageControl ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr.
Seite 1 von 2  1 2      

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