Fragen zum Messagerequester

Anfängerfragen zum Programmieren mit PureBasic.
Die Null
Beiträge: 1
Registriert: 19.06.2007 16:31
Wohnort: Berlin

Fragen zum Messagerequester

Beitrag von Die Null »

Hallo ich habe mal 2 Fragen !!!

1.

Code: Alles auswählen

MessageRequester("Achtung","Hallo Welt!",#PB_MessageRequester_Ok)
Kann man die Farbe von "Hallo Welt" in z.b ROT ändern???

2.

Code: Alles auswählen

MessageRequester("Achtung","A",#PB_MessageRequester_Ok)
MessageRequester("Achtung","B",#PB_MessageRequester_Ok)
MessageRequester("Achtung","C",#PB_MessageRequester_Ok)
Kann man es so machen das es A;B;C "abspielt" also alleine jede Sekunde weiter geht!!!

PS: sry , wenn es sowas schon gab , hab nichts gefunden !!!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Bitte keine Titel ohne jegliche Aussagekraft, beim nächsten mal landet es
dort wo Beiträge ohne vernünftigen Titel hingehören, im Mülleimer.

Danke im voraus
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Re: Fragen zum Messagerequester

Beitrag von PureBasic4.0 »

Die Null hat geschrieben:Kann man die Farbe von "Hallo Welt" in z.b ROT ändern???
Das geht mit MessageRequestern nicht. Da musst du ein Window dafür verwenden.
Die Null hat geschrieben:Kann man es so machen das es A;B;C "abspielt" also alleine jede Sekunde weiter geht!!!
Bei jedem MessageRequester wird dein Programm solange pausiert, bis der Anwender eine Schaltfläche gedrückt hat. Folglich kannst du auch keine Sekunden zählen lassen.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Kurz gesagt, auch beim zweiten Problem geht das nur mit Fenstern. Du kannst Dir allerdings eine kleine eigene Funktion basteln, die ein Fenster öffnet und den entsprechenden Text anzeigt, und diese kannst Du dann genauso aufrufen wie einen MessageRequester
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

aha ich weiß zwar nicht, ob es "erlaubt" ist, aber so ähnlich geht was

Code: Alles auswählen

Global head.s,text.s

Procedure mb()
  MessageRequester(head,text,0)
EndProcedure

head.s="aha1"
text.s="uhu1"
tid=CreateThread(@mb(),0)
Delay(1000)
KillThread(tid)
Delay(500)
head.s="aha2"
text.s="uhu2"
tid=CreateThread(@mb(),0)
Delay(1000)
KillThread(tid)
Delay(500)
head.s="aha3"
text.s="uhu3"
tid=CreateThread(@mb(),0)
Delay(1000)
KillThread(tid)
Delay(500)
End
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> aha ich weiß zwar nicht, ob es "erlaubt" ist, aber so ähnlich geht was
Soweit ich weiß muß ein Messagerequester dem Thread zugeordnet werden,
der das Hauptfenster erzeugt hat, könnte also probleme machen, aber eine
von MS empfohlene Vorgehensweise findet sich hier:
http://www.purebasic.fr/english/viewtop ... 325#187325
Nicht ganz dasselbe, aber durch das Timeout sollte man dem Wunsch auch
nahe kommen :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

hmm ..

Code: Alles auswählen

MessageBox_(0,"uhu","aha",#MB_OK)
erzeugt lt der Dokumentation ne Messagebox ohne explizite
Abhängigkeit vom übergeordneten Fenster , oder kann ich nicht lesen?
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich vermute mal das es nichts ändert:

Code: Alles auswählen

MessageRequester("", "1")
Debug 1
MessageBox_(0, @"1", 0, 0)
Debug 2
Anwendung läuft in beiden Fällen erst nach Ok weiter, darin sehe ich eine
Abhängigkeit
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> Anwendung läuft in beiden Fällen erst nach Ok weiter
Ist ja auch logisch, denn wenn ich das Ergebnis des MessageRequesters abfangen will, um die Antwort auszulesen, dann läuft das Programm ja auch nicht weiter un die Variable wird erst später gefüllt oder so.

IMHO ist die Abhändigkeit, die bobobo meint, nur die, dass der MessageRequester nicht das Elternfenster blockiert. Trage ich meine WIndowID ein, wird mein Hauptfenster bis zum Klick auf OK gesperrt (also gedisabled). Trage ich das Handle des Desktops ein, dürfte das Programm zwar auch angehalten, nicht aber der Zugruff auf das hauptfenster der Anwendung gesperrt sein.

Sollte ich falsch liegen, dann nehme ich alles zurück. :lol:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich wollte damit sagen, da sich eine Messagebox, ob mit oder ohne hWnd,
direkt auf mein MessageLoop auswirkt, indem der nämlich gestoppt wird.
Wenn sich etwas auf den MessageLoop auswirkt sollte es nicht in anderen
Threads laufen.

Kann natürlich auch falsch liegen, finde aber MessageBoxen in Threads
sowieso völlig daneben :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten