![]() |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Weil es zu Fehlern beim Beenden kommt.
|
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Glaskugel in Reparatur, bitte Code zeigen. ;)
|
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Delphi-Quellcode:
genügt.
iib := ib.Create(listbox); // iib = Instanz; ib = InfoBox
|
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
So, tut es das?
Mir jedenfalls nicht. Du erzeugst eine Instanz mit deiner Listbox als Ownder. Was hilft mir das weiter? Richtig, gar nichts. |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Hehe, ich meinte genügt für eine AV beim Beenden.
|
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Also du machst folgendes:
iib := TInfoBox.Create(listbox); Du bist dir sicher, dass die Listbox schon instantiiert ist? Also ich hab einfach mal ne Form gebastelt, Listbox draufgeworfen, ins OnCreate...
Delphi-Quellcode:
...reingeschrieben. Funzt perfekt. Keine AV. Muss woanders dran liegen.
var InfoBox: TInfoBox;
begin InfoBox:=TInfoBox.Create(listbox1); end; |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
wollte das auch mal probieren, aber leider zeigt es nix an...(auch keine AV)
Delphi-Quellcode:
warum (nicht D3-kompatibel, Doublebuffered ist raus, sonst nichts verändert)?
procedure TForm1.FormCreate(Sender: TObject);
begin ib:=TInfobox.Create(self); end; procedure TForm1.Button1Click(Sender: TObject); begin ib.Hide; ib.Width:=160; ib.Height:=100; with TLabel.Create(ib) do begin parent:=ib; Left:=8; Top:=8; Caption:='Blubb'; end; ib.Show; end; procedure TForm1.FormDestroy(Sender: TObject); begin if assigned(ib) then ib.free; end; Gruß Frank |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Lass mal das Free im FormDestroy weg, das macht die Form automatisch, da sie der Owner ist.
Dein Problem überprüfe ich mal. |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
ich bekomme keine AV!
es wird keine infobox angezeigt beim buttonclick... |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Ich weiß, dass du keine kriegst. Lass es trotzdem weg, es ist unnötig.
Zu deinem Problem: So komisch es klingt: Du musst ein Parent zuweisen. Pack ein...
Delphi-Quellcode:
...in das FormCreate und dann gehts auch.
ib.Parent:=Self;
|
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
ahja...dachte das wird eh überschrieben...na gut, jedenfalls funktioniert es.
was dringend geändert werden muss: nicht genau auf die Mausposition setzen sondern, versetzt min 1 px, da man sonst auf dem form nicht mehr arbeiten kann, bis man die box ausblendet... ansonsten fällt mir auf, dass auf dem form selber scrollbars auftauchen (ich will die jetzt mal nicht deaktivieren, da da ein fehler vorliegt), selbst wenn die IB noch innerhalb des forms ist... Gruß Frank |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Das mit der Mausposition ist schon behoben, ich lad gleich die neue Version hoch (warte noch 5 Min oder so).
Das mit den Scrollleisten ist mir bekannt, allerdings weiß ich nicht, wie ich es beheben soll. Das habe ich ganz weit vorne im Thread auch schon geschrieben. Am besten du deaktivierst die Scrollleisten, so hab ichs in Hydrogenium auch gemacht. |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Moin,
hab gerade mal probiert, deine TInfobox zutesten. Doch leider findet er bei mir keine trans.dcu bzw. trans.pas :!: Wo kann man diese downloaden bzw. kannst du sie nicht mitliefern oder wenigsten einen Link oder Bemerkung beifügen :gruebel: |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Liste der Anhänge anzeigen (Anzahl: 1)
So... Ich habe endlich auch eine Anwendung für deine TInfoBox gefunden :D
Zuerst: Es ist genial ^^ Einfach Hintfarbe kopieren und einsetzen... zack: Ein ImmerDaHint xD Aber ich habe das Problem, dass ich es auf einer TPaintbox anzeige. Im OnEnter zeigt er es an und im OnLeave blendet er es aus. Soweit gut... Problem : Manchmal kommt die Maus auf die InfoBox! Und Zack! => OnLeave => Ausblenden... Aber jetzt isse ja wieder auf der TPaintbox => OnEnter => Einblenden => ??? Aber jetzt blendet er es nicht an der Maus wieder ein, sondern am alten Punkt, wo er ausgeblendet hat... Also alles von vorn => OnLeave => ... Das Beispiel ist hier schon online: ![]() Mein Tipp: Bau eine Property ein: "FollowMouse" ;) Dann weißt du immer, wo die Box hinsoll! Ich habe mal den Code überarbeitet (FollowMouse). PS: Wie wäre es mit Schatten? PPS: Ich weiß wie alt das Thema is ^^ [edit]Ähm... das tuts irgendwie net :/[/edit] |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Wieso überprüfst du nicht einfach im OnLeave, ob die Maus sich noch über deiner PaintBox befindet oder nicht?
|
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Naja... Eigentlich brauche ich es nicht überprüfen, aber deine Box macht es nötig ... Nur finde ich nirgends ein Fehler, warum sich die Box nicht bewegt...
|
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Zwei Tipps:
1. Fadenkreuz-Cursor. Dann verdeckt der Cursor nicht ständig die Box. 2. Die Box immer 1 Pixel weiter rechts und unten platzieren als die Maus. Dann passiert das nicht mehr. |
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Zitat:
Zitat:
|
Re: TInfoBox - eine InfoBox direkt auf dem Desktop
Dann dürfte dein Problem doch gar nicht auftreten. *kratz*
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:08 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