![]() |
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) :( |
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. |
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; |
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 ? |
Re: Editfehld einer pageSeite zuordnen
Zitat:
wäre doch irgendwie hilfreich wenn du sagen würdest was genau sheet1 und sheet2 sind. Zitat:
Gruß Der Unwissende |
Re: Editfehld einer pageSeite zuordnen
Sheet sind TabSheet von PageControl
und index wird hizugewiesen:
Delphi-Quellcode:
hatte ich auch gepostet....
tabs[i].index:=CreateDialog(HInstance,Pchar(tabs[i].text),htab,@tabdlgfunc);
|
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:
das kann ja nicht gehen...
SetWindowPos(tabs[0].index, 0, 50, (rect.Bottom - rect.Top) + 50, 0, 0,
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? |
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 ! |
Re: Editfehld einer pageSeite zuordnen
naja.... warum benutzt du denn CreateDialog? Das kann ich gar nicht nachvollziehen.
wie ist dein tabs-array denn deklariert? |
Re: Editfehld einer pageSeite zuordnen
weil im tutorial von luckie das auch so gemacht wird...
mein array ist zu defniert:
Delphi-Quellcode:
gibt es sowas wie AddTabToPageControl ?
Ttab = record
text:String; index:Integer; end; hMainMenu,hSubMenu : HMENU; tabs:array of Ttab; tcItem: TTCItem; hTab:THandle; hwndMemo1:hwnd; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr. |
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