Autor Beitrag
en!gma
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Mi 06.08.08 09:01 
hi.
also ich habe folgendes problem:

ich habe ein programm, welches nicht für niedrige auflösungen programmiert wurde.
als ich es nun auf meinem eee starten wollte, fehlte dort einfach die scrollbar und das programm wurde abgeschnitten.
keine möglichkeit an den unteren teil des programms zu kommen.

habe auch schon bei der hotline angerufen und nachgefragt, ob ich etwas falsch mache oder es eine versteckte option gibt.
aber es geht einfach nicht.

daher dachte ich mir ich könnte so ein programm schreiben:

ich habe eine form und implementiere einfach das komplette programm in diese form, nur dass ich halt eine scrollbar mit in dem fenster hätte.

nachteil wäre wohl dabei, dass ich 2 leisten oben hätte und der scrollbalken auch über das dropdown menü gehen würde,
aber das würde mich nicht großartig stören.

also, würde das überhaupt gehen was ich vorhabe?
oder habt ihr andere vorschläge wie man das problem lösen könnte?

mfg

en!gma
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Do 07.08.08 12:49 
niemand eine idee?
möchte ja nur zusätzlich einen scrollbalken einfügen
Xabitire
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 114

Win Xp, Win Vista
D6 PE, D7 PE
BeitragVerfasst: Do 07.08.08 13:10 
Hi!

Ich muss sagen deine Idee erscheint mir etwas kompliziert!
Ich habe auch ein Notebook mit 7-Zoll Display und kenne von daher das Problem!

Also bei Linux kann man Forms an jeder Stelle verschieben, wenn man dabei "Alt" gedrückt hält! Geht bei Windows allerdings nicht! Aber wenn du ja ein Programm schreiben willst würde ich das genau unter diesem Ansatz versuchen! Das dürfte nicht so kompliziert werden und es lässt sich relativ einfach bedienen!

Ist ja nur ein Vorschlag! :wink:

MFG Blackbird8690
baka0815
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 489
Erhaltene Danke: 14

Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
BeitragVerfasst: Do 07.08.08 13:19 
Dein Programm könnte am Bildschirmrand (WorkArea?) Scrollbalken anzeigen. Beim Programmstart lässt du das zu steuernde Fenster auswählen, ermittelst die Formular-Größe und reagierst mit den Balken entsprechend.
Nachteil: Geht nur für die Main-Form.

Alternativ könntest du auch versuchen, dass du ein Fenster "fängst": Du klickst in deinem Programm auf den Knopf "zu steuerndes Fenster wählen" und danach mit der Maus auf ein anderes Fenster. Von dem holst du dir das Handle und kannst es dann steuern.
Vielleicht klappt sowas ja.
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Do 07.08.08 13:47 
Hallo,
Habe über Google einen Beispielcode für VB gefunden, möglicherweise kann man ihn für Delphi anpassen. Werde das heute Abend auch mal versuchen, habe nur jetzt kein Delphi zur Verfügung:

www.activevb.de/tipp...6tipps/tipp0489.html

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Do 07.08.08 18:52 
So, hab mal ein bisschen damit rumgespielt. Es geht tatsächlich, müsste man halt noch etwas ausbauen. Mit dem folgenden Code kann man ein Fenster von der Mausposition holen (maus bitte auf die Titelleiste richten, sonst erwischt man stattdessen ein Steuerelement), und dieses dann auf das eigene Formular bekommen:

user defined image

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
var
  Form1: TForm1;
  fenster: HWND;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  var
    n: Byte;
    punkt: tPoint;
    str: pAnsiChar;
begin
  str := strAlloc(255);
  for n := 1 to 100 do
    begin
      progressbar1.Position := n;
      application.ProcessMessages;
      sleep(20);
    end;
   getCursorPos(punkt);
   fenster := Windowfrompoint(punkt);

   getWindowText(fenster,str,255);
   caption := str;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  windows.SetParent(fenster,panel1.Handle);
  windows.MoveWindow(fenster,0,0,panel1.Width,panel1.Height,true) ;
  windows.ShowWindow(fenster,1)
end;

procedure TForm1.Button3Click(Sender: TObject);
  var
    desk: HWND;
begin
  desk := getDesktopWindow;
  windows.SetParent(fenster,desk)
end;

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Do 07.08.08 20:07 
ah vielen vielen dank, ich denke damit kann man doch sehr gut arbeiten
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Do 07.08.08 20:25 
Habs noch ein bisschen Abgewandelt, jetzt mit ScrollBox :)

// edit: 2. version mit bschrifetem Button, sollte leichter zu bedienen sein ;)
Einloggen, um Attachments anzusehen!
_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)


Zuletzt bearbeitet von Tilman am Do 07.08.08 23:21, insgesamt 2-mal bearbeitet
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Do 07.08.08 21:06 
Hi,

Ohne mir das Programm angeschaut zu haben.. Wäre es nicht prinziopiell sogar möglich, einen Zweitbildschirm zu simmulieren?

E:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
for n := 1 to 100 do begin
  Progressbar1.Position := n;
  Application.ProcessMessages;
  Sleep(20);
end;


Arbeitet da ein anderer Threat oder was bringt das genau?^^

Edit2: Okay.. Hilfe :)
Ich hab dein Programm jetzt mal runtergeladen und ein bisschen herumexperimentiert.. Auf einmal ist meine Taskleiste aus dem Popup unten verschwunden und als Fenster unabhängig auf dem Desktop oben links :mrgreen:

Hoffe mal, ein Neustart behebt das, sonst komm ich morgen nochmal drauf zurück :( :lol:

E: Unter 'Anwendungen' wird eine Anwendung namens 'Ausgeführte Anwendungen' ausgeführt :mrgreen:

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Do 07.08.08 22:06 
da fällt mir gerade auf/ein...
gibt es dazu nicht noch eine möglichkeit, den namen der leiste in mein programm zu übernehmen?
okay das wird auf jedenfall gehen, aber kann ich auch einfach die alte leiste weglassen?

denn so hätte ich ja 2 leisten.
am praktischsten wäre es ja, wenn ich nur 1 leiste hab und mit dieser auch das fenster und so verschieben kann

//edit:

doh' ich seh grad der name wird ja schon übernommen.
bleibt nur die frage wegen einer leiste weglassen
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Do 07.08.08 23:17 
user profile iconHidden hat folgendes geschrieben:
Hi,

Ohne mir das Programm angeschaut zu haben.. Wäre es nicht prinziopiell sogar möglich, einen Zweitbildschirm zu simmulieren?


Hm, naja im Prinzip ist das Ding ja sowas wie ein Zweitbildschirm ^^ Wird aber natürlich nicht als solcher erkannt, und das düfte ohne Treiber-proggen auch nicht zu machen sein ^^

user profile iconHidden hat folgendes geschrieben:
E:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
for n := 1 to 100 do begin
  Progressbar1.Position := n;
  Application.ProcessMessages;
  Sleep(20);
end;


Arbeitet da ein anderer Threat oder was bringt das genau?^^


Das gibt bloß dem User 2 Sekunden Zeit ein Fenster zu wählen. Habe übrigens leider vergessen den entsprechenden Button zu beschriften, werde ich gleich noch nachholen.

user profile iconHidden hat folgendes geschrieben:
Edit2: Okay.. Hilfe :)
Ich hab dein Programm jetzt mal runtergeladen und ein bisschen herumexperimentiert.. Auf einmal ist meine Taskleiste aus dem Popup unten verschwunden und als Fenster unabhängig auf dem Desktop oben links :mrgreen:


Ja, man kann noch tollere Sachen machen, z.B. einen Button aus einem Fenster freistellen... leider kann das Proggie bislang noch nicht zwischen Fenster und Steuerelement unterscheiden.

user profile iconHidden hat folgendes geschrieben:


E: Unter 'Anwendungen' wird eine Anwendung namens 'Ausgeführte Anwendungen' ausgeführt :mrgreen:
mfG,


Ehrlich gesagt weiß ich nicht so ganz was du meinst :gruebel:

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Do 07.08.08 23:30 
Achja, noch ein Tipp für alle die es zu Bunt getrieben haben: den Explorer kann man auch ohne Neustart wiederherstellen:

1. Taskmanager starten
2. Den Prozess "Explorer" abschießen
3. über Datei-->neuer Task-->explorer eingeben, dann sollte wieder alles stimmen.

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Do 07.08.08 23:57 
najo und noch einmal dazu.
mein problem ist soweit gelöst, ich denke der rest ist nurnoch spielerei.

habe einfach das fenster um 30 px nach oben verschoben, so sieht man die leiste nicht mehr.
nur etwas blöd wenn man auf das x drückt um das programm zu schließen, dann fragt er halt nicht ob man das eigentliche programm abspeichern möchte oder so.

aber es erfüllt auf jedenfall seinen sinn.
vielen dank
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Mo 11.08.08 09:03 
hm so leicht gings wohl doch leider nicht.

er scheint auf dem kleinen pc das programm erst zu maximieren ( was nicht geht, weil er ja nur eine 600er auflösung hat in der höhe ) und danach pack ich es in mein programm.

ich kann weit genug nach unten scrollen, aber das fenster hat die selbe größe wie ohne das programm :/

gibt es evtl eine möglichkeit es direkt in meinem programm zu starten?
also garnicht erst auf dem desktop?
ich denke, dass dies der grund ist warum er es abschneidet
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Mo 11.08.08 17:54 
Man kann über API-Funktionen das fremde Fenster anweisen sich zu vergößern, werde das demnächst mal implementieren.

// edit
Mir ist grad noch was eingefallen: es könnte auch daran liegen, dass das Fenster beim Kidnappen maximiert ist. Versuche mal das Fenster zuerst auf "Normal" zu stellen, und es dann zu Kidnappen.


Grüße,
Tilman

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Mo 11.08.08 18:59 
Also ich träume ja schon immer davon, Ein Programm in einer Windows-Simulation zu testen.. Und ihm dann einfach einige Sachen zu verbieten: 'Maximieren ignorieren', 'Sounds nicht weiterleiten', ..

Wäre aber wohl schwierig. Wenns so was schon gäbe, ließe sich mit so was sicher auch dieses Problm lösen.

mfGm

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Mo 11.08.08 20:28 
user profile iconTilman hat folgendes geschrieben:
Man kann über API-Funktionen das fremde Fenster anweisen sich zu vergößern, werde das demnächst mal implementieren.

// edit
Mir ist grad noch was eingefallen: es könnte auch daran liegen, dass das Fenster beim Kidnappen maximiert ist. Versuche mal das Fenster zuerst auf "Normal" zu stellen, und es dann zu Kidnappen.


Grüße,
Tilman


ja das war auch erst mein gedanke.
hatte ich schon probiert aber geht leider nicht.

deswegen ist mir nur eingefallen:
irgendwie nicht maximiert starten
oder
direkt in meinem programm starten
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Mo 11.08.08 20:35 
Naja, werde heute Abend nicht mehr dazukommen da noch rumzuproggen, aber wenn du versuchen willst dein Programm nicht mixmimiert zu startn, könntest du mal versuchen es mit ShellExecute zu öffnen

Zitat:

SW_HIDE Hides the window and activates another window.
SW_MAXIMIZE Maximizes the specified window.
SW_MINIMIZE Minimizes the specified window and activates the next top-level window in the Z order.
SW_RESTORE Activates and displays the window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when restoring a minimized window.
SW_SHOW Activates the window and displays it in its current size and position.
SW_SHOWDEFAULT Sets the show state based on the SW_ flag specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application. An application should call ShowWindow with this flag to set the initial show state of its main window.
SW_SHOWMAXIMIZED Activates the window and displays it as a maximized window.
SW_SHOWMINIMIZED Activates the window and displays it as a minimized window.
SW_SHOWMINNOACTIVE Displays the window as a minimized window. The active window remains active.
SW_SHOWNA Displays the window in its current state. The active window remains active.
SW_SHOWNOACTIVATE Displays a window in its most recent size and position. The active window remains active.
SW_SHOWNORMAL Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when displaying the window for the first time.


ansonsten ist SetWindowPlacement Dein freund, damit kann man die Position und Höhe/Breite eines Fensters "von aussen diktieren".

Wie gesagt, werde demnächst mal versuchen das oben vorgestellte proggie dementsprechend auszubauen, aber heute nicht mehr ;)

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
en!gma Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Di 12.08.08 14:07 
hm ich bin am verzweifeln :/
es geht einfach nicht größer
habe gerade so gut wie alle commands von dir ausprobiert.

auch mit setwindowpos wird das fenster nicht größer.
als wenn er sich die maximale höhe merkt wenn er startet.

oder er von der höhe her maximal 20 kleiner als die auflösung annimmt oder sowas in der art

hm hoffe ihr habt noch andere ideen
Logikmensch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 390

Win XP
Delphi 2007 Prof., XE2, XE5
BeitragVerfasst: Mi 13.08.08 04:54 
Hallöle,

ich habe auch einen EEEPC und habe das Problem, dass einige Anwendung meinten, nicht auf dem "achgottchen-nee-viel zu kleinen Display" ;-) laufen zu wollen, dadurch in den Griff bekommen, dass ich ein Zusatz-Tool aus einem EEEPC-Forum runtergeladen hab', welches diverse Auflösungen durch Pixel-Interpolation simuliert. Sowas wie 1024x768 zum Beispiel oder, wer es nicht ganz so groß braucht, auch 800x600. ;-) Funzt gut.

Aber ich will eure Bemühungen hier, die ich auch durchaus interessant finde, nicht schmälern. :-)

_________________
Es gibt keine Probleme - nur Lösungen!