Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TInfoBox - eine InfoBox direkt auf dem Desktop (https://www.delphipraxis.net/74297-tinfobox-eine-infobox-direkt-auf-dem-desktop.html)

Nils_13 9. Aug 2006 19:51

Re: TInfoBox - eine InfoBox direkt auf dem Desktop
 
Weil es zu Fehlern beim Beenden kommt.

3_of_8 9. Aug 2006 19:52

Re: TInfoBox - eine InfoBox direkt auf dem Desktop
 
Glaskugel in Reparatur, bitte Code zeigen. ;)

Nils_13 9. Aug 2006 20:18

Re: TInfoBox - eine InfoBox direkt auf dem Desktop
 
Delphi-Quellcode:
iib := ib.Create(listbox); // iib = Instanz; ib = InfoBox
genügt.

3_of_8 9. Aug 2006 20:35

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.

Nils_13 9. Aug 2006 21:02

Re: TInfoBox - eine InfoBox direkt auf dem Desktop
 
Hehe, ich meinte genügt für eine AV beim Beenden.

3_of_8 9. Aug 2006 21:12

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:
var InfoBox: TInfoBox;
begin
InfoBox:=TInfoBox.Create(listbox1);
end;
...reingeschrieben. Funzt perfekt. Keine AV. Muss woanders dran liegen.

_frank_ 9. Aug 2006 23:37

Re: TInfoBox - eine InfoBox direkt auf dem Desktop
 
wollte das auch mal probieren, aber leider zeigt es nix an...(auch keine AV)

Delphi-Quellcode:
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;
warum (nicht D3-kompatibel, Doublebuffered ist raus, sonst nichts verändert)?

Gruß Frank

3_of_8 9. Aug 2006 23:54

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.

_frank_ 9. Aug 2006 23:55

Re: TInfoBox - eine InfoBox direkt auf dem Desktop
 
ich bekomme keine AV!

es wird keine infobox angezeigt beim buttonclick...

3_of_8 9. Aug 2006 23:57

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:
ib.Parent:=Self;
...in das FormCreate und dann gehts auch.

_frank_ 10. Aug 2006 00:10

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

3_of_8 10. Aug 2006 00:13

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.

fylo 25. Aug 2006 20:00

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:

xZise 8. Apr 2007 14:49

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: http://www.delphipraxis.net/internal...ct.php?t=97474

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]

3_of_8 8. Apr 2007 15:50

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?

xZise 8. Apr 2007 16:00

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...

3_of_8 8. Apr 2007 18:23

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.

xZise 9. Apr 2007 08:35

Re: TInfoBox - eine InfoBox direkt auf dem Desktop
 
Zitat:

Zitat von 3_of_8
1. Fadenkreuz-Cursor. Dann verdeckt der Cursor nicht ständig die Box.

Je nachdem welchen Cursor man dafür hat ;)
Zitat:

Zitat von 3_of_8
2. Die Box immer 1 Pixel weiter rechts und unten platzieren als die Maus. Dann passiert das nicht mehr.

Das macht doch schon dein Code so ;)

3_of_8 9. Apr 2007 16:32

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.
Seite 2 von 2     12   

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