Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Wie wurde dieses Programm programmiert, bzw. wie funktioniert es? (https://www.delphipraxis.net/166229-wie-wurde-dieses-programm-programmiert-bzw-wie-funktioniert-es.html)

Popov 3. Feb 2012 16:59

Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vielleicht liegt es daran, dass ich immer noch mit XP arbeite und vielleicht gehört es seit Vista und Windows 7 zur Normalität, und vielleicht wurde diese Frage hier schon erörtert, aber ich frage mich wie dieses Programm funktioniert. Es nennt sich Analoque Vista Clock und ist als Demo erhältlich, z. B. bei heise: http://www.heise.de/software/downloa...ta_clock/40155. Ich kenne mich zwar nur venig mit Vista und Win 7 aus, aber die Windows Sidebar funktioniert nach meinen Kenntnissen anders.

Was mich an dem Programm interessiert ist nicht, dass es teil-transparent ist und permanent im Vordergrund liegt, sondern dass es durchklickbar ist. Wenn ich auf das Programm klicke, dann klicke ich den Hintergrund an.

Ok, das könnte ich auch noch mit einem gewissen Aufwand hinkriegen in dem ich die Mausaktionen abfange und sie an das dahinter liegende Programm weiterleite, aber kann es so simpel sein und doch so genial?

Sir Rufo 3. Feb 2012 17:07

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
ja, es wäre so schön, wenn es eine Forensuche geben würde
Hier im Forum suchenform durchklickbar

himitsu 3. Feb 2012 17:12

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Und zum Thema (Halb)Transparent gibt es auch einige Threads zu finden.

Popov 3. Feb 2012 17:15

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Ok, danke, da habe ich wohl die falschen Suchbegriffe verwendet. Ich ging davon aus, dass es etwas komplexer ist mit Mausaktionen abfangen und nach hinten weiterleiten.

himitsu 3. Feb 2012 17:23

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Selbst wenn man es manuell machen müßte ...
- Fenster hinter dem eigenem Fenster finden > EnumWindows
- Mausnachrichten weiterreichen > SendMessage

Sir Rufo 3. Feb 2012 17:23

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Zitat:

Zitat von Popov (Beitrag 1149092)
Ok, danke, da habe ich wohl die falschen Suchbegriffe verwendet. Ich ging davon aus, dass es etwas komplexer ist mit Mausaktionen abfangen und nach hinten weiterleiten.

Ja, das kann man bei einigen Threads hier auch beobachten. Da fragt der TE nach einer ganz abstrusen Möglichkeit etwas zu machen. Wenn man dann fragt, was er eigentlich damit erreichen will, stellt man fest, das er da auf dem völlig falschen Weg war :mrgreen:

Programmier-Richtlinie: KISS - Keep It Smart and Simple
Frage-Richtlinie: ASS - Ask Smart and Simple

DeddyH 3. Feb 2012 17:38

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Ob sie jetzt "durchklickbar" ist, weiß ich nicht, aber mir fällt spontan Emils GDIClock ein, das Ding ist OpenSource, vielleicht lässt sich da ein wenig spicken (ich selbst habe aber zugegebenermaßen nicht reingeguckt).

EWeiss 3. Feb 2012 19:26

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Zitat:

Zitat von DeddyH (Beitrag 1149097)
Ob sie jetzt "durchklickbar" ist, weiß ich nicht, aber mir fällt spontan Emils GDIClock ein, das Ding ist OpenSource, vielleicht lässt sich da ein wenig spicken (ich selbst habe aber zugegebenermaßen nicht reingeguckt).

Jo das ist durchklickbar.. (Ghostmode)

Delphi-Quellcode:
procedure TClockForm.MakeWndTransparent(Value : Boolean);
var
   curWinStyle: Integer;
begin
   curWinStyle := GetWindowLong(Handle, GWL_EXSTYLE);
   if Value then
      SetWindowLong(Handle, GWL_EXSTYLE, curWinStyle or WS_EX_TRANSPARENT)
   else
   SetWindowLong(Handle, GWL_EXSTYLE, curWinStyle and (not WS_EX_TRANSPARENT));
end;
Delphi-Quellcode:
procedure TClockForm.menuGhostClockClick(Sender: TObject);
var
   curWinStyle: Integer;

begin
   menuGhostClock.Checked := not menuGhostClock.Checked;

   curWinStyle := GetWindowLong(Handle, GWL_EXSTYLE);
   bGhostClock := not((curWinStyle and WS_EX_TRANSPARENT) = WS_EX_TRANSPARENT);
   MakeWndTransparent(bGhostClock);
   IsFirstTimer := true;  // to apply modified setting at once

   if bGhostClock then
     MessageBox(Handle, pchar(msgs[6] + #10#10+ msgs[7]), pchar(msgs[1]), MB_OK);
end;
PS:
Super unter Klatsch und Tratsch.. Da gehört es hin?

gruss

Popov 4. Feb 2012 13:32

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Zitat:

Zitat von EWeiss (Beitrag 1149111)
PS:
Super unter Klatsch und Tratsch.. Da gehört es hin?

Hm, gute Frage. Das Problem ist, dass ich von falschen Voraussetzungen ausging. Der Fehler beruht wohl drauf, dass ich vor Tagen wegen einer anderen Sache einen Screenshot vom Desktop gemacht habe und im Nachhinein der Meinung war die Uhr nicht gesehen zu haben. Also ging ich von einem Trick aus. Ich wusste nicht, dass des Rätsels Lösung so profan ist.

Aber wo wir schon dabei sind, mit welcher Delphiversion hast du deine GDIClock erstellt?

jaenicke 4. Feb 2012 13:39

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Zitat:

Zitat von Popov (Beitrag 1149194)
Aber wo wir schon dabei sind, mit welcher Delphiversion hast du deine GDIClock erstellt?

Schau doch einfach nach. Mit Delphi 2006 wurde es zuerst und dann mit Delphi 2009 bearbeitet. ;-)

EWeiss 4. Feb 2012 15:06

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Zitat:

Zitat von jaenicke (Beitrag 1149196)
Zitat:

Zitat von Popov (Beitrag 1149194)
Aber wo wir schon dabei sind, mit welcher Delphiversion hast du deine GDIClock erstellt?

Schau doch einfach nach. Mit Delphi 2006 wurde es zuerst und dann mit Delphi 2009 bearbeitet. ;-)

Zudem kann er ja die *.dpr starten anstelle der Projekt Datei.

Zitat:

Ich wusste nicht, dass des Rätsels Lösung so profan ist.
Wenn es denn SO profan ist (Deine Worte)
Warum wußtest du es dann nicht?

gruss

Popov 4. Feb 2012 16:30

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Also ich wollte dein Projekt und deine Leistung in keinster Weise schmälern. Auch wollte ich die Hilfe aller und auch deine Hilfe und den Code den du gepostet hast nicht abwerten. Das hat mir alles sehr geholfen. Sollte meine Bemerkung abwertend geklungen haben, dann bitte ich um Entschuldigung.

Profan bezog sich lediglich darauf, dass das alles mit einer einzigen Api Funktion zu bewerkstelligen ist. Es bezog sich nicht auf die Hilfe und Leistung.

Ist jetzt alles wieder ok?

Übriges, ich hab die andere Uhr inzwischen entfernt und nutze deine. Gefällt mir sehr.

Zitat:

Zitat von jaenicke
Schau doch einfach nach.

Entweder ist mir der Historymodus entgangen oder ich verstehe nicht was gemeint. Ich nutze Delphi 7, kenne keine bdsproj oder dproj usw. Ich wollte den Code ausführen, es klappte nicht, also habe ich eine Frage nach der Version gestellt. War nicht böse gemeint.

jaenicke 4. Feb 2012 18:43

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Zitat:

Zitat von Popov (Beitrag 1149223)
Entweder ist mir der Historymodus entgangen oder ich verstehe nicht was gemeint. Ich nutze Delphi 7, kenne keine bdsproj oder dproj usw. Ich wollte den Code ausführen, es klappte nicht, also habe ich eine Frage nach der Version gestellt. War nicht böse gemeint.

Meinte ich ja auch nicht böse. ;-) Die .bdsproj Datei bedeutet, dass es mit Delphi 2005 oder 2006 bearbeitet wurde, die .dproj, dass es mit Delphi 2007 oder neuer ebenfalls bearbeitet wurde. Du brauchst dann nur in die .dproj Datei schauen, dann siehst du einerseits einen Hinweis in den Pfadangaben auf das BDS 4.0 --> Delphi 2006, andererseits in den Metadaten einen auf Version 12.0 --> Delphi 2009. ;-)

EWeiss 4. Feb 2012 21:05

AW: Wie wurde dieses Programm programmiert, bzw. wie funktioniert es?
 
Zitat:

Ist jetzt alles wieder ok?
Kein problem :)

Wir haben hier sehr gute Programmierer die sich mit den Komponenten und der IDE von Delphi sehr gut auskennen.
Ich bemerke aber immer wieder das doch sehr wenige sich mit der Win32APi auskennen (beschäftigen).
Daher finde ich es gut wenn man so wie es hier ist! Man sich gegenseitig aushilft.
Was für einen Sinn hätte denn auch das Forum wenn es nicht so wäre.

Zitat:

Übriges, ich hab die andere Uhr inzwischen entfernt und nutze deine. Gefällt mir sehr.
Unsere ;)
Darfst du auch gern erweitern.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 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