Thank you, Mike, for Virtual Treeview . It's the most useful, powerful, fast, flexible, beautiful, multifunctional Delphi component I've ever seen.
Thank you, thank you, thank you!

Thank you, Mike, for Virtual Treeview . It's the most useful, powerful, fast, flexible, beautiful, multifunctional Delphi component I've ever seen.
Thank you, thank you, thank you!

I recently connected my new HD TV to my notebook, to test the DVI-to-HDMI adapter I just bought and various resolutions. I played a bit with different resolutions, started HeidiSQL, moved it to the TV which was used as second desktop. Then, after having plugging off the TV I started HeidiSQL again and saw - nothing! No window visible... HeidiSQL remembered its last window position and started in the area where the TV has previously provided its resolution. So, looked like a bug ![]()
Started Delphi and found the place where the main window restores its position (Top, Right) and size (Width, Height) from the last session. I discovered the global Screen object has some Monitor* properties - these are:
Screen.Monitors Screen.MonitorCount Screen.MonitorFromPoint Screen.MonitorFromRect Screen.MonitorFromWindow
The most important property to fix the above described bug seemed to be MonitorFromWindow which tells the TMonitor object of the monitor on which the window is being displayed. The great thing about that is: If there is no second monitor plugged in, MonitorFromWindow returns the first TMonitor object available. So it always returns the best fitting monitor number for the given window handle, but never a no longer plugged monitor. Given this TMonitor object you can check if your window is placed within the monitor's resolution:
var
Monitor: TMonitor;
const
MoveWinThreshold: Byte = 80;
begin
// ...
// 1. Some code to restore the last GUI position and dimension
// ...
// 2. Detect the relevant monitor object
Monitor := Screen.MonitorFromWindow(Self.Handle);
// 3. Now ensure the just positioned window is visible to the user
// 3.a. Set minimal visible width
if Left > Monitor.Left + Monitor.Width - MoveWinThreshold then
Left := Monitor.Left + Monitor.Width - MoveWinThreshold;
// 3.b. Set minimal visible height
if Top > Monitor.Top + Monitor.Height - MoveWinThreshold then
Top := Monitor.Top + Monitor.Height - MoveWinThreshold;
..
end
If the window (that means: the upper left corner) is placed somewhere outside the monitor's resolution, the above code moves its Left + Top properties so there's a minimal rectangle of 80x80 pixels visible in the current monitor. Given this minimum rectangle, the user can now manually move and resize the window.
P.S.: Don't try to Free the TMonitor object afterwards which you got by Screen.MonitorFromWindow - that will lead to an access violation. Most probably MonitorFromWindow returns a reference to that object.
I somehow messed up the file privileges of a rsync'd SVN repository on a Windows server. Most probably it was rsync/cygwin which broke something here. After fiddling around with the folders and files I just zipped the complete directory of the repository, deleted the original files and then unzipped the zipfile again - works perfectly now!
A ZIP file cannot store given privileges of files and folder. But be aware that RAR can, so prefer ZIP!
Link: http://www.heidisql.com/download.php
A sysiphus work for developers: Replace each of the 37 zillion icons in a complex application! HeidiSQL now uses the awesome Silk icon set by Mark James.
Now it looks like this:
![]()
Previously that looked like this:
![]()
This took me at least one hour to find out: If you encounter either this error while accessing the backend at /typo3 :
Error in init.php: sitepath not specified correctly
or this error while accessing the frontend:
Cannot find configuration. This file is probably executed from the wrong location.
Just ensure the old PHP arrays like $HTTP_SERVER_VARS are registered. You can do so by adding this PHP flag to your .htaccess :
Code:
php_flag register_long_arrays 1 |
Release date: March 11 2008 for USA, unknown yet for Europe.
Cover: http://www.treknews.de/treknews/newspro-treknews/upload/newsbilder/stargatearktruthr1artpic.jpg
Link: http://mog.com/music/Art_Of_Noise/The_Best_Of_The_Art_Of_Noise
Letztens wieder entdeckt - immer noch fantastisch anzuhören: Paranoimia, Beatbox, Close (to the edit) etc. Mittlerweile gibt es scheinbar einige Remixes der Art of Noise Hits aus den 80ern, die ich bisher nie gehört habe. Und eine 4er CD mit dem Lebenswerk der Avantgardler gibt es seit Ende 2006 - diese soll u.a. eine Menge unveröffentlichtes Material enthalten, und die seltene Originalversion von Beatbox.
Meine ersten Gehversuche im Programmieren gehen zurück ins Jahr 1991, als ich ohne irgendwelche Vorkenntnisse in der 11. Schulklasse des Arnold-Janssen-Gymnasiums für ein halbes Jahr das Fach Informatik wählte. Lern-Stoff war eine abgeschlossene Programmier-Umgebung, in der man mit einem stark abgespeckten Pascal den Roboter "Niki" über ein viereckiges Feld steuern musste. Soweit ich mich erinnern kann, waren die damaligen PCs ausgestattet mit einem 80-086 Prozessor (4,7 MHz), 2 x 5¼-Zoll-Diskettenlaufwerken, Hercules-Grafik und Bernstein-Monitor.
Vor kurzem fand ich die Niki-Software im Web wieder und sah mit Begeisterung, das es hier bereits eine Windows-Umsetzung gab: http://www.hupfeld-software.de/niki.php. Für alle Programmier-Anfänger heute noch wärmstens zu empfehlen