Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan

XProfan Alles rund um die Programmiersprache XProfan.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag Kein Audiogerät
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3361, Antworten: 129
Gehe zum ersten neuen Beitrag Hamachi deinstallieren
Aufrufe: 58, Antworten: 5
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7670, Antworten: 187
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26970, Antworten: 4223
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50963, Antworten: 1397
Gehe zum ersten neuen Beitrag Pc lahmt plötzlich
Aufrufe: 186, Antworten: 6
Gehe zum ersten neuen Beitrag PC fährt nicht mehr hoch.
Aufrufe: 0, Antworten: 0
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 329, Antworten: 19
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 28, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08.01.2012, 22:33   #1 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard Handle Top

Hilfe! Versuche gerade eine Listbox im Vordergrund zu bekommen und bekomme es nicht hin.
Code:
DEF GetSysColor(1) !"USER32","GetSysColor" 
cls GETSYSCOLOR (15)
var f.dlg&=%hwnd
CREATETEXT(f.DLG&,"Datum",0015,0042,0080,0022)
CREATETEXT(f.DLG&,"Name",0015,0072,0040,0022)

var f.Datum& =@CREATEEDIT(f.DLG&,"",0085,0040,0160,0022)
var f.Name& =@CREATEEDIT(f.DLG&,"",0085,0070,0160,0022)
var Schein%= @CreateCheckBox(f.DLG&,"abgegeben",90,0102,0100,0022)

Var Listname%=Control("DIALOG","",$54001100,85,92,160,220,f.dlg&,0,%hinstance,$0)
var Listname&=CreateListBox(Listname%,1,0,0,160,220)
AddString(Listname&,"Meier")
AddString(Listname&,"Freier")
AddString(Listname&,"Anton")
ShowWindow(Listname%,0)

while 1
 waitinput
 case %key=2:BREAK
 If GetFocus(f.name&) AND (%MouseKey=0)
     ShowWindow(Listname%,1)
  Else
     ShowWindow(Listname%,0)
 EndIf
wend
end
Wie ist es machbar? Eine ChoiceBox solls nicht werden.

Gruß Thomas
THFR ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 09.01.2012, 05:26   #2 (Direktlink)
Weiß worum´s geht
 
Benutzerbild von Sascha Oliver Haak
 
Registriert seit: 11.02.2009
Ort: Hagen, Westf.
Alter: 41
Beiträge: 171
Standard

@THFR

Hallo,
kann es sein, dass Du die Listbox nicht auf das Fenster legst?
Code:
var Listname&=CreateListBox(Listname%,1,0,0,160,220)
Ich glaube Du solltest hier "Listname%" in Dein Fensterhandel umändern.
Code:
var Listname&=CreateListBox(f.dlg&,1,0,0,160,220)
Gruß
Sascha
__________________
Wer ein Problem erkennt, und nichts zu seiner Beseitigung unternimmt, der ist möglicherweise ein Teil dieses Problems.

Besucht mich auf meiner HP: http:\\www.saolha.bplaced.net
Sascha Oliver Haak ist offline   Mit Zitat antworten
Alt 09.01.2012, 05:46   #3 (Direktlink)
Unregistriert
Gast
 
Beiträge: n/a
Standard

Du könntest die Checkbox auch einfach verstecken

ShowWindow(schein%,0)
  Mit Zitat antworten
Alt 09.01.2012, 14:45   #4 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard

@Sascha, hatte ich. Aber die darunterliegenden 20+ Edits "schlagen" dann, wenn die Maus zur Auswahl in der Liste ist, durch. Abhilfe schafte nur, die Edits zu deaktivieren.
Da ja eine ChoiceBox geöffnet immer Top ist, dachte ich es auch mit einem Dialog, bei entsprechendem Stil, auf dem die Listbox ist, zu realisieren.

Guß Thomas

Geändert von THFR (10.01.2012 um 00:29 Uhr)
THFR ist offline   Mit Zitat antworten
Alt 09.01.2012, 22:04   #5 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Kein Problem:

Def NewWindowPos(7) !"USER32","SetWindowPos"
...
NewWindowPos(listbox&,-1,0,0,0,0,$13)

Setzt den Toplevel für die Listbox, oder eben für jedes andere Control. An besten direkt nach dem Erstellen aufrufen.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 09.01.2012, 23:23   #6 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard

@Frank, bei mir leider noch ja. Wenn ich ein Listview über das Andere ziehe, so bleiben beide sichtbar, wie auch Handle: Create(Text), Create(Button), usw. . Nur das RTF (Notizen) wird überdeckt.
Ich hatte die Hoffnung, dass es mit einem Dialog mit entsprechendem Stil möglich ist. So ein Trackmenü schafft es ja auch.
So war der Code
Code:
  LV_GW_FS&=CreateListView(Element3&,%hinstance,0,$FFFFFF,-1,$31)
  NewWindowPos(LV_GW_FS&,-1,0,0,0,0,$13)
  SetFont LV_GW_FS&,L_font&
  EnableEdits(LV_GW_FS&,5)
  ~SetWindowLong(LV_GW_FS&,~GWL_EXSTYLE,0)
  SetStyle LV_GW_FS&,GetStyle(LV_GW_FS&) | ~ws_thickFrame

  text$=old_file$ + "\\Bootsplatz\\" + BP_Wahl$[b.obj%]+"\\"+BP_Wahl$[b.obj%] + "-FS.csv"
  bytes&=@FileSize(text$) 
  If bytes&>0 
    Dim bereich#,bytes&
    ReadFileQuick(addr(text$),bereich#,0,bytes&) 
    x&=SetColumnsFromMem(LV_GW_FS&,bereich#,addr(y&))
    CsvToListview(LV_GW_FS&,(bereich#+y&),(bytes&-y&),x&)
    Dispose bereich# 
    SetColumnWidth(LV_GW_FS&,0,80)
    SetColumnWidth(LV_GW_FS&,1,50)
    SetColumnWidth(LV_GW_FS&,2,80)
    SetColumnWidth(LV_GW_FS&,3,80)
    SetColumnWidth(LV_GW_FS&,4,80)
    SetColumnWidth(LV_GW_FS&,5,80)
  EndIf

  ShowListView(LV_GW_FS&,600,380,%maxx-630,100)
  var  BS_b00& = CreateText(ELEMENT3&,"Fangstatistik",600,354,170,22)
  SetFont BS_b00&,LF_font&

  var  NOT_b0& = CreateText(ELEMENT3&,"Notizen",600,504,122,22)
  SetFont NOT_b0&,LF_font&
  Bmp1& = CREATE("HPIC", Verein_dll&, "#5")
  var  NOT_b3& =Create("PicButton",ELEMENT3&,Bmp1&,848,500,22,22)

  LV_GW_RTF& = Create("RichEdit",ELEMENT3&,"",600,530,600,-100)
  Rtf("LoadRTF",LV_GW_RTF&,old_file$ + "\\Bootsplatz\\" + BP_Wahl$[b.obj%]+"\\"+BP_Wahl$[b.obj%] + ".rtf")
  ~SetWindowLong(LV_GW_RTF&,~GWL_EXSTYLE,0)
  SetStyle LV_GW_RTF&,GetStyle(LV_GW_RTF&) | ~ws_thickFrame
für's untere Listview und RTF-Edit.

Gruß Thomas

Geändert von THFR (10.01.2012 um 03:32 Uhr)
THFR ist offline   Mit Zitat antworten
Alt 10.01.2012, 07:06   #7 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Der Code ist leider nicht testbar.

Vielleicht anstelle eines Dialogs ein Static als Parent verwenden? Insgesamt ist es besser, alle Controls auf ein und demselben Parent zu setzen.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist gerade online   Mit Zitat antworten
Alt 10.01.2012, 11:41   #8 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
Beitrag

Hab ich dich richtig verstanden ? Die Listbox soll auf Mausklick hin verschwinden und wieder erscheinen ?
So würde ich es machen. (Sorry, hab deinen Code aus dem 1. Thread etwas geändert )
Code:
DEF GetSysColor(1) !"USER32","GetSysColor" 
cls GETSYSCOLOR (15)
WINDOW (%MaxX/2-320),(%MaxY/2-240) - 640,480
DECLARE txt%,schein%
DECLARE datum&,name&,_dlg&,_box&
DECLARE modus$
txt%=CREATE("TEXT",%hwnd,"Datum",15,42,80,22)
txt%=CREATE("TEXT",%hwnd,"Name",15,72,40,22)
datum& =CREATE("EDIT",%hwnd,"",85,40,160,22)
name& =CREATE("EDIT",%hwnd,"",85,70,160,22)
schein%= CREATE("CheckBox",%hwnd,"abgegeben",90,102,100,22)
_dlg&=Control("DIALOG","",$54001100,85,150,160,220,%hwnd,0,%hinstance,$0)
_box&=CREATE("LISTBOX",_dlg&,"",0,0,160,220)
AddString(_box&,"Meier")
AddString(_box&,"Freier")
AddString(_box&,"Anton")
ShowWindow(_dlg&,1)
modus$="1"
SETFOCUS(datum&)
WHILE 1
        WAITINPUT
 case %key=2:BREAK
 If CLICKED(name&)
        If modus$="1"
                ShowWindow(_dlg&,0)
                modus$="0"
                SETFOCUS(datum&)
        ELSEIF modus$="0"
                ShowWindow(_dlg&,1)
                modus$="1"
                SETFOCUS(datum&)
        ENDIF
ENDIF
ENDWHILE
end
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist gerade online   Mit Zitat antworten
Alt 10.01.2012, 14:24   #9 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard

Nein Horst, wenn ein Listview(hier wegen der Kürze Gridbox) in der Größe, z.B. zum Bearbeiten, verändert wurde und bearbeitet wird (den Focus hat), soll es die anderen überdecken. Mini Beispiel
Code:
$H Windows.ph
$H messages.ph
$H RichEdit.ph
$H commctrl.ph
$H Structs.ph

Def NewWindowPos(7) !"USER32","SetWindowPos"
DEF Redraw(1) ~RedrawWindow(&(1),0,0,~RDW_FRAME | ~RDW_INVALIDATE | ~RDW_ALLCHILDREN | ~RDW_ERASE)

cls 15

Var E31&=Control("DIALOG","",$50400001,100, 40, 240, 100,%hwnd,0,%hinstance,$0)

var LV1&=Create("GridBox", E31&, "Telefon;0;100;Email;0;130;", 1, 0, 0, 240, 100)
  NewWindowPos(E31&,-1,0,0,0,0,$13)
  ~SetWindowLong(E31&,~GWL_EXSTYLE,0)
  SetStyle E31&,GetStyle(E31&) | ~ws_thickFrame

var LV2&=Create("GridBox", %hwnd, "Name;0;170;Vorname;0;160;", 1, 100, 160, 340, 100)
  NewWindowPos(LV2&,-1,0,0,0,0,$13)
  ~SetWindowLong(LV2&,~GWL_EXSTYLE,0)
  SetStyle LV2&,GetStyle(LV2&) | ~ws_thickFrame

var LV3&=Create("GridBox", %hwnd, "Ort;0;100;Strasse;0;130;", 1, 100, 300, 240, 100)
  NewWindowPos(LV3&,-1,0,0,0,0,$13)
  ~SetWindowLong(LV3&,~GWL_EXSTYLE,0)
  SetStyle LV3&,GetStyle(LV3&) | ~ws_thickFrame

AddString(LV1&,"328963|k.m@ohne.de")
AddString(LV2&,"Klaus|Mustermann")
AddString(LV3&,"Muster|Wasserweg 9a")
while 1
case %key=2:BREAK
waitinput
'Redraw(%hwnd)
wend
Meine Versuche habe ich weggelassen.
Wenn keiner eine Idee hat, werde ich wohl zur ReBar greifen.

Gruß Thomas
THFR ist offline   Mit Zitat antworten
Alt 10.01.2012, 14:48   #10 (Direktlink)
MoRoGeP-Träger 2011
 
Benutzerbild von horsthorn
 
Registriert seit: 06.02.2009
Ort: Heidelberg
Alter: 71
Beiträge: 1.878
Beitrag

Hab mit Showwindow(X%,0) probiert. Wenn du alle Gridboxen auf das Hauptfenster legst, geht das. Ist aber 'ne Krücke.
Da gibt es elegantere Lösungen mit TAB... usw...
Hier mein "letzter Versuch"
(Alle Gridboxen auf %hwnd)
Code:
IF GETFOCUS(LV1&)
        Showwindow(LV1&,1)
        Showwindow(LV2&,0)
        Showwindow(LV3&,0)
ELSEIF GETFOCUS(LV2&)        
        Showwindow(LV1&,0)
        Showwindow(LV2&,1)
        Showwindow(LV3&,0)
ELSEIF GETFOCUS(LV3&)
        Showwindow(LV1&,0)
        Showwindow(LV2&,0)
        Showwindow(LV3&,1)
ELSEIF GETFOCUS(%hwnd) 'irgendwohin klicken außerhalb der aktiven Gridbox
        Showwindow(LV1&,1)
        Showwindow(LV2&,1)
        Showwindow(LV3&,1)
ENDIF
__________________
Gruss, horst
Computer werden kleiner und kleiner, bald verschwinden sie völlig.
(Ephraim Kishon 1924-2005)

Win7-Home-Premium 32-Bit - XProfan12.0ß-S14 - Chrome-18.0.1025.142 m
http://www.web-treffpunkt.de
horsthorn ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 10.01.2012, 20:43   #11 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard

@Horst, deinen Vorschlag hatte ich auch schon. Ist sicher der einfachste und sicherste Weg.
Habe selbst noch etwas weiter gesucht, Box über allen andren, wenn eine Zeile markiert wird, ist noch nicht optimal.
Code:
$H Windows.ph
$H messages.ph
$H RichEdit.ph
$H commctrl.ph
$H Structs.ph

Def NewWindowPos(7) !"USER32","SetWindowPos"
DEF Redraw(1) ~RedrawWindow(&(1),0,0,~RDW_FRAME | ~RDW_INVALIDATE | ~RDW_ALLCHILDREN | ~RDW_ERASE)

cls 15

var LV1&=Create("GridBox", %hwnd, "Telefon;0;100;Email;0;130;", 1, 100, 10, 240, 100)
'  NewWindowPos(LV1&,-1,0,0,0,0,$13)
  ~SetWindowLong(LV1&,~GWL_EXSTYLE,0)
  SetStyle LV1&,GetStyle(LV1&) | ~ws_thickFrame

var LV2&=Create("GridBox", %hwnd, "Name;0;170;Vorname;0;160;", 1, 100, 160, 340, 100)
   ~SetWindowLong(LV2&,~GWL_EXSTYLE,0)
  SetStyle LV2&,GetStyle(LV2&) | ~ws_thickFrame

var LV3&=Create("GridBox", %hwnd, "Ort;0;100;Strasse;0;130;", 1, 100, 300, 240, 100)
  NewWindowPos(LV3&,-1,0,0,0,0,$13)
  ~SetWindowLong(LV3&,~GWL_EXSTYLE,0)
  SetStyle LV3&,GetStyle(LV3&) | ~ws_thickFrame
 
AddString(LV1&,"328963|k.m@ohne.de")
whileloop 15
AddString(LV2&,str$(&loop)+". Klaus|Mustermann")
wend
AddString(LV3&,"Muster|Wasserweg 9a")
while 1
case %key=2:BREAK
waitinput
if getfocus(LV3&)
  SetStyle LV2&,GetStyle(LV2&) |  ~SWP_NOACTIVATE
  SetStyle LV1&,GetStyle(LV1&) |  ~SWP_NOACTIVATE
  Redraw(LV3&)
Elseif getfocus(LV2&)
  SetStyle LV1&,GetStyle(LV1&) |  ~SWP_NOACTIVATE
  SetStyle LV3&,GetStyle(LV3&) | ~SWP_NOACTIVATE
  Redraw(LV2&)
Elseif getfocus(LV1&)
  SetStyle LV2&,GetStyle(LV2&) | ~SWP_NOACTIVATE
  SetStyle LV3&,GetStyle(LV3&) |  ~SWP_NOACTIVATE
  Redraw(LV1&)
endif

wend
Vielleicht haben unsere Spezi noch eine elegantere Lösung.

Gruß Thomas
THFR ist offline   Mit Zitat antworten
Alt 10.01.2012, 21:20   #12 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
Standard

Was genau hast du jetzt eigentlich vor?

Gridboxen einen Style zu geben, der so nicht vorgesehen ist, ist vielleicht keine so gute Idee. Ansonsten hätte MS auch ein Set-Gegenstück geschaffen zu GetTopWindow().
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist gerade online   Mit Zitat antworten
Alt 10.01.2012, 22:26   #13 (Direktlink)
Stammuser
 
Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
Standard

@Frank, dass man vier Listviews beliebig vergrößern kann und bei Überschneidung die Gewählte sicht- und bearbeitbar wird.
Ich werde es noch mit der oFrame.dll testen, da ich sie in dem Programm ohne hin eingesetzt habe.

Gruß Thomas
THFR ist offline   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Handle für Speicherbitmap horsthorn XProfan 4 08.12.2011 11:28
[Windows XP-32 bit] lsass.exe - ungültiges Handle marci Viren-Forum 5 30.04.2011 13:26
Handle Tester C/C++, Visual C++, Visual C++.NET 2 09.03.2010 20:29
Was ist ein Handle? AHT Spezielles 58 11.04.2009 10:29
DFÜ Einwahl Handle Fehler 6 Drawfit Netzwerke 2 03.02.2004 19:51



Alle Zeitangaben in WEZ +2. Es ist jetzt 12:52 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2