AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte TInfoBox - eine InfoBox direkt auf dem Desktop
Thema durchsuchen
Ansicht
Themen-Optionen

TInfoBox - eine InfoBox direkt auf dem Desktop

Ein Thema von 3_of_8 · begonnen am 1. Aug 2006 · letzter Beitrag vom 9. Apr 2007
Antwort Antwort
Seite 4 von 6   « Erste     234 56      
Benutzerbild von 3_of_8
3_of_8
Registriert seit: 22. Mär 2005
Morgen.

Ich stand gerade vor dem Problem: Wie kriege ich eine Reihe von Komponenten auf den Desktop?

Nach und nach kam mir die Idee: Warum nicht die Komponenten in ein Panel packen und das mit der WinAPI bearbeiten.

Und hier ist mein TDesktopPanel.

Es kann in der Entwurfszeit auf einem Formular platziert und mit Komponenten bestückt werden. Zur Laufzeit wandert es dann auf den Desktop und kann mit Left/Top/Width/Height platziert/skaliert werden.

Hinweis: Das TDesktopPanel kann NICHT den Fokus erhalten. Ebensowenig alle Komponenten, die darauf sind. Man kann zwar Edits usw. drauftun, nur reinschreiben geht mangels Fokus nicht. Dafür muss man dann eine Form mit BorderStyle=bsNone verwenden.

Zwei Bugs sind noch drin:
1. Die Form zeichnet bei der Verschiebung des Panels immer noch die Scrollleisten, die einzige Möglichkeit, die da wohl funktioniert ist, bei der Form beide Scrollleisten auf Visisble=False zu stellen. Wenn jemand eine bessere Idee hat, nur her damit.

2. Es gibt ein leichtes Flimmern, wenn die Form in den Vordergrund geholt wird bei WM_MOVE. Wie man das behebt, weiß ich nicht, ich bin aber für Vorschläge offen.
Miniaturansicht angehängter Grafiken
hydrogenium_829.jpg  
Angehängte Dateien
Dateityp: zip infobox_634.zip (1,8 KB, 111x aufgerufen)
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
 
EDatabaseError

 
Delphi 2007 Professional
 
#31
  Alt 8. Aug 2006, 14:33
Öhm, hast du jetzt ma die Sourcen wie ich das Ding anwenden kann

Mfg
Tobi
Tobias
  Mit Zitat antworten Zitat
Nils_13
 
#32
  Alt 9. Aug 2006, 08:26
Zitat von EDatabaseError:
Öhm, hast du jetzt ma die Sourcen wie ich das Ding anwenden kann

Mfg
Tobi
Genau, wir wollen Codes sehen. Oder erklär mal, wie man sie erstellt. Ich habe es mit
Delphi-Quellcode:
bla := InfoBox.Create;
bla.bla2.bla3;
gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#33
  Alt 9. Aug 2006, 14:05
Also ich würde es im Formulardesigner auf ne Form ziehen und dann Komponenten draufpacken. Angezeigt wird es dann einfach mit InfoBox.Show;

Allerdings kann mans natürlich auch zur Laufzeit erstellen, wenn man will.

Delphi-Quellcode:
InfoBox:=TInfoBox.Create(nil);
InfoBox.Width:=160;
InfoBox.Height:=100;
lbl:=TLabel.Create(InfoBox);
lbl.Left:=8;
lbl.Top:=8;
lbl.Caption:='Blubb';
InfoBox.Show;
Manuel Eberl
  Mit Zitat antworten Zitat
Nils_13
 
#34
  Alt 9. Aug 2006, 14:27
Und wie gebe ich die Komponente wieder frei ? Mit oder ohne Freigabe bekomme ich beim Beenden des Programms eine AV.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin
 
#35
  Alt 9. Aug 2006, 14:45
Zitat von Nils_13:
Und wie gebe ich die Komponente wieder frei ?
wie alles mit Blubb.Free

Leo S.
  Mit Zitat antworten Zitat
EDatabaseError

 
Delphi 2007 Professional
 
#36
  Alt 9. Aug 2006, 15:33
Zitat von 3_of_8:
Also ich würde es im Formulardesigner auf ne Form ziehen und dann Komponenten draufpacken. Angezeigt wird es dann einfach mit InfoBox.Show;

Allerdings kann mans natürlich auch zur Laufzeit erstellen, wenn man will.

Delphi-Quellcode:
InfoBox:=TInfoBox.Create(nil);
InfoBox.Width:=160;
InfoBox.Height:=100;
lbl:=TLabel.Create(InfoBox);
lbl.Left:=8;
lbl.Top:=8;
lbl.Caption:='Blubb';
InfoBox.Show;

und wie sieht das in einer Anwendung aus??? So wie in deinem Periodensystem als Hint könnte ichs nämlich gebrauchen
Tobias
  Mit Zitat antworten Zitat
Nils_13
 
#37
  Alt 9. Aug 2006, 19:12
Zitat von Meflin:
Zitat von Nils_13:
Und wie gebe ich die Komponente wieder frei ?
wie alles mit Blubb.Free
AV ist AV.

1. Muss ich die Komponente und die Instanz freigeben
2. Steht hier doch das Problem:
Zitat:
Mit oder ohne Freigabe bekomme ich beim Beenden des Programms eine AV.
Ich brauche die InfoBox außerdem für eine Listbox, von jedem Item sollen Sachen ausgelesen werden. Ein kleines Kurztutorial oder Codebeispiel wäre wirklich hilfreich. Du hast doch einen Webspace, also liegt da nicht das Problem.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#38
  Alt 9. Aug 2006, 19:42
Also wenn du die Listbox in die Infobox tun willst, dann geht das nicht. Da musst du ne eigene Form nehmen. Denn Fokus in einem Panel ohne Parent - das kann nicht gut gehen.
Manuel Eberl
  Mit Zitat antworten Zitat
Nils_13
 
#39
  Alt 9. Aug 2006, 19:43
Ich will die Infobox doch nur an der richtigen Stelle mit .Show anzeigen, ohne die Listbox in die Infobox zu packen.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

 
Turbo Delphi für Win32
 
#40
  Alt 9. Aug 2006, 19:49
Dann gehts.

Sorry, ich dachte irgendwie das ganze wäre selbsterklärend.

Du musst nur Labels auf die InfoBox packen, oder Images usw... Alles was keinen Fokus braucht.

Mit Show zeigst du sie dann an und mit Hide verbirgst du sie wieder.

Sorry, aber wozu ein Beispielprojekt?
Manuel Eberl
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 6   « Erste     234 56      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz