DargarWhiteFang Skrevet 26. november 2004 Del Skrevet 26. november 2004 (endret) Heisann! Blir snart rød her... av sinne. Sinne for at jeg ikke forstår! Kan noen forklare hvordan jeg skal gå fram når: Vil bruke Mathworks strip (Matlab komponent) for å tegne opp en strip-graf. I hjelpen til denne står det bl.a. DESCRIPTION Used to append a Y value to the end of the desired data set. In this case, the associated X value is optained from the VariableLastX and VariableDeltaX properties. The index parameter corresponds to the desired VariableID. This method is an excellent way to plot a variable whose X value is incrementing by a fixed value. For instance, if you are counting the number of widgets going along an assembly line and taking a reading off each widget (your Y value), this would be the method to use. SYNTAX Visual Basic: control.AddY(Index as integer, Y as double) Copyright © 1998 Global Majic Software, Inc. Jeg har følgende kode som kjører når jeg trykker på en knapp (stripcharten heter Strip1) Private Sub btnDraw_Click() Dim Index As Integer Dim Y As Double Index = 1 Y = 10 Strip1.Variables = 1 Strip1.VariableID = 1 Strip1.VariableType = Analog Strip1.VariableDeltaX = 1 Strip1.VariableTrackID = 1 Strip1.VariableVisible = True Strip1.AddY(Index, Y) End Sub Det er "Strip1.AddY = (Index, Y)" som er innteresant her. Jeg får denne feilmeldinga: Expected: = Jeg modder linja til Strip1.AddY = (Index, Y) men når jeg da trykker "enter" så markeres komma'et og feilmeldinga "Compile Error: Expected: )" kommer opp.. Alltså den vil ha parantes etter Index. Men dersom jeg setter parantes i steden for komma, så sier den at argument is not optional (såklart, for jeg må jo gi den en Y-verdi også) Jeg fatter ikke, noen som vet hvordan den vil ha dette egentlig??????? ARG! Takk for all hjelp!!! Endret 29. november 2004 av Dargar Lenke til kommentar
Jonas Skrevet 26. november 2004 Del Skrevet 26. november 2004 Jeg har ingen peiling på hva en Strip er, eller hva parameterene til funksjonen er, men jeg regner med at dette funker: Strip1.AddY Index, Y Lenke til kommentar
DargarWhiteFang Skrevet 27. november 2004 Forfatter Del Skrevet 27. november 2004 Takk Jonas, det fungerte det! Mye jeg har å lære ennå, heldigvis?! Strip-chart: Har du sett sånne skrivere som plotter ut på et langt ark (tapet) som rører seg? f.eks seismografer, løgndetektorer etc. Det er en strip-chart. I VB her så dreier det seg om en komponent som man kan gi forskjellige parametrer til og deretter gi den X og Y data slik at den grafer ut. Jeg skal bruke den til å grafe ut ett antall oppmålte strømmer og spenninger som jeg får inn digitalt via serie porten. Grafen kommer da til å vise hvordan disse varierer med tiden. Skal se om jeg får det til å fungere, men nå skal jeg ta en bastu etter jobben og sove, klokka er jo nå 5 på morgenen, så jeg tror ikke jeg orker å være mer produktiv nå. Takk igjen for at du fikk meg i gang!! Lenke til kommentar
Jonas Skrevet 27. november 2004 Del Skrevet 27. november 2004 (endret) Jepp, sånne har jeg sett, og en sånn har jeg laget Du kan skifte størelse på strekene men Picture1.DrawWidth og farge med Picture1.ForeColor (tror jeg det var). Se vedlegg. Edit: Gjorde et par endringer, og kommenterte litt. Graf.zip Endret 27. november 2004 av Jonas Lenke til kommentar
DargarWhiteFang Skrevet 27. november 2004 Forfatter Del Skrevet 27. november 2004 (endret) Kult att du kan så mye att du har laga ein sjøl!! Eg er jo fremdeles fast på riktig nybegynner nivå (og selvlært dessuten, så jeg har store gapende hull i fundamentet når det gjelder VB).. Har igjen ett liknende problem. Fra hjelp-fila: DESCRIPTION Returns the maximum, minimum, average, and standard deviation values of all data values within the buffer for the variable currently selected by VariableID. SYNTAX Visual Basic: [value =] control.VariableAvg [value =] control.VariableMax [value =] control.VariableMin [value =] control.VariableStdDev Copyright © 1998 Global Majic Software, Inc. men når jeg har en variable Dummy som er av typen Double og skriver: Dummy = Strip1.VariableMax så får jeg igjen at argument ikke er optional (og teksten ".VariableMax" er markert i VB editoren. Samme resultat om jeg bar tar bort = tegnet (men det virker jo fullstendig ulogiskt å gjøre). Som du ser så virker det som om det er noe fundamentalt her som jeg ikke forstår, siden jeg klarer å få til liknende feil hele tiden. Med din forrige hjelp så har jeg kommt ganske godt i gang egentlig, men kjører stadig fast på sånne "smådetaljer".... Om du orker å dele med deg av din visdom? [edit] Det som jeg til slutt vil oppnå er jo å skrive ut verdien i en label, f.eks. ved å kjøre lblGraphMax.Caption = Dummy eller noe slikt. [/edit] Endret 27. november 2004 av Dargar Lenke til kommentar
aadnk Skrevet 27. november 2004 Del Skrevet 27. november 2004 Kan det hende VariableMax har en nødvendig paramenter, slik at du må skrive koden noenlunde sliK? Dummy = Strip1.VariableMax( ' ett eller annet her, det skulle komme opp når du skriver paranteset uten annet etter) Lenke til kommentar
DargarWhiteFang Skrevet 27. november 2004 Forfatter Del Skrevet 27. november 2004 (endret) Skal prøve, men burde ikke alle parametrer og slikt stå i hjelp-fila? Se mitt sitat over for det som stod om VariableMax i hjelp/dokumentasjonen. Eh. Jaha. Tusen takk. skal benytte meg mer av den featuren fra og med nå. Det viste seg at den vil ha TrackID som inn-parameter, til tross for at dette ikke nevnes i dokumentasjonen. Takk takk! Endret 27. november 2004 av Dargar Lenke til kommentar
DargarWhiteFang Skrevet 28. november 2004 Forfatter Del Skrevet 28. november 2004 Dersom man har en "Form" så kan man jo lett endre fargen på den, til f.eks. &hE0E0E0& Men kan man gjøre dette f.eks. for en "slider" (standard VB komponent) eller hva med menyen som skapes av "menu editor"? Er irriterende med forskjellige farger i programmet, og jeg vil ikke ha standard fargen! Tips? Lenke til kommentar
Vain Skrevet 28. november 2004 Del Skrevet 28. november 2004 Her er en link til et prosjekt som viser hvordan du gjør det. Det er godt forklart i koden. Link Lenke til kommentar
aadnk Skrevet 28. november 2004 Del Skrevet 28. november 2004 For å endre bakgrunnsfargen til alle scrollbar-ene i en form, må du legge følgende inn i en modul: Option Explicit Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Declare Function GetProp Lib "user32" Alias "GetPropA" (ByVal hwnd As Long, ByVal lpString As String) As Long Declare Function SetProp Lib "user32" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long Declare Function RemoveProp Lib "user32" Alias "RemovePropA" (ByVal hwnd As Long, ByVal lpString As String) As Long Declare Function GetScrollBarInfo Lib "user32" (ByVal hwnd As Long, ByVal idObject As Long, psbi As SCROLLBARINFO) As Long Declare Function FillRect Lib "user32" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Private Type RECT left As Long top As Long right As Long bottom As Long End Type Private Type SCROLLBARINFO cbSize As Long rcScrollBar As RECT dxyLineButton As Long xyThumbTop As Long xyThumbBottom As Long reserved As Long rgstate(0 To 5) As Long End Type Public Const OBJID_CLIENT = &HFFFFFFFC Public Const GWL_WNDPROC = (-4) Public Const WM_CTLCOLORSCROLLBAR = &H137 Public Const SBM_GETSCROLLBARINFO = &HEB Public Sub SubclassControl(Control As Object, BackColor As Long) SetProp Control.hwnd, "PrevProc", SetWindowLong(Control.hwnd, GWL_WNDPROC, AddressOf WindowProc) SetProp Control.hwnd, "BackColor", CreateSolidBrush(BackColor) End Sub Public Sub UnSubclassControl(Control As Object) SetWindowLong Control.hwnd, GWL_WNDPROC, GetProp(Control.hwnd, "PrevProc") DeleteObject GetProp(Control.hwnd, "BackColor") RemoveProp Control.hwnd, "PrevProc" RemoveProp Control.hwnd, "BackColor" End Sub Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Dim ScrollInfo As SCROLLBARINFO, PrevProc As Long PrevProc = GetProp(hwnd, "PrevProc") Select Case uMsg Case WM_CTLCOLORSCROLLBAR WindowProc = GetProp(hwnd, "BackColor") Exit Function End Select WindowProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam) End Function Og deretter dette i formene du vil endre fargen: Private Sub Form_Load() ' Bruk en annen farge enn vbRed om du ikke ønsker rød bakgrunn. SubclassControl Me, vbRed End Sub Private Sub Form_Unload(Cancel As Integer) UnSubclassControl Me End Sub Off-topic: Huff, så lang tid dette tok. Lenke til kommentar
DargarWhiteFang Skrevet 29. november 2004 Forfatter Del Skrevet 29. november 2004 WOW Det var mer jobb å få til enn jeg hadde regna med!! phew! Sitter og irriterer meg grønn over noe nytt nå... I properties så fungerer scroll-hjulet på musa, men ikke i selve Code-editoren (der som jeg skriver koden). Skal det være sånn? Kan man enndre på dette ett eller annet sted? Det er grusomt irriterende når man skal bla opp eller ned i koden og så kan man ikke bruke mus-hjulet! Lenke til kommentar
d0ppler Skrevet 29. november 2004 Del Skrevet 29. november 2004 bare en liten ting.. syns du har en utrolig dårlig overskrift/topic på posten din Lenke til kommentar
aadnk Skrevet 29. november 2004 Del Skrevet 29. november 2004 Hmm... angående manglende støtte for "scroll-wheel" i VB6 IDE-en; dette er faktisk allerede fikset av Microsoft. Du kan laste ned denne patchen på denne siden: http://support.microsoft.com/?id=837910 Lenke til kommentar
DargarWhiteFang Skrevet 29. november 2004 Forfatter Del Skrevet 29. november 2004 Har sittet her en stund nå med en for-sats som tilsynelatende ikke fungerer. Har søkt i MSDN men ser ikke hva jeg gjør feil. For i = 0 To i = UBound(Buffer, 1) Label1.Caption = Label1.Caption & Chr(Buffer(i)) Next i Buffer er definert som Dim Buffer() as Byte Buffer har blitt tildelt verdier mha. Buffer = MSComm1.Input og om jeg skriver ut UBound(Buffer, 1) i en label, så får jeg 59, så jeg vet at det finns 60 tegn som venter på meg i Buffer. Men, når programmet kjører for-loopen over så hender det ingenting med Label1. Det merkelige er at dersom jeg tar bort for-loopen og kjører følgende : Label1.Caption = Label1.Caption & Chr(Buffer(0)) 'eller 1 eller 2 eller 3 etc... så får jeg opp bokstavene i labelen! Det er derfor jeg tror at noe er feil med for-loopen... Lenke til kommentar
Jonas Skrevet 29. november 2004 Del Skrevet 29. november 2004 (endret) Bare en syntax error. Slik skal en for-loop skrives: For i = 0 To UBound(Buffer, 1) Label1.Caption = Label1.Caption & Chr(Buffer(i)) Next i Edit: Man starter alltid telle forskjellige ting, på null, så arrayet inneholder 60 elementer, men slutter på 59. Endret 29. november 2004 av Jonas Lenke til kommentar
DargarWhiteFang Skrevet 29. november 2004 Forfatter Del Skrevet 29. november 2004 men, men... jaja. sorry. (lamt av VB å ikke kunne si fra om den typen syntax-feil da.) Vil bare benytte kjangsen å takke for att jeg har fått så mange og kjappe svar, det er virkelig til stor hjelp for meg når jeg setter meg fast og kan komme igang igjen så kjapt! Med tanke på at jeg skrev for-satsen etter hva jeg trodde var korekt tolkning av MSDN, så kanskje jeg har missoppfatta dette også: I MSDN stod det noe slikt i example: MSComm1.Output = "ATV1Q0" & Chr$(13) ' Ensure that Men det fungerer også slik, i mitt program iallefall: MPEGCom.Output = txtCommand & Chr$(13) Men nå har jeg prøvd både med og uten $ karaktæren, og det fungerer i begge tilfellene, så hva gjør $ i denne situasjonen? Slik jeg har forstått det så brukes $ for å lage streng-variabler med "flytende" størrelse, f.eks. msg$ [streng fra 0 til XXXX tegn stor], men Chr er jo en funksjon og ikke en variabel? ---- Jeg kommenterer koden og forsøker å benytte fornuftige navn, så jeg tenkte at når jeg er klar med programmet (er i skole-sammenheng, og ganske mange andre elever sine prosjekter avhenger av meg, så det BLIR ferdig) så kan jeg dele det med alle dere på forumet her. Tror nok at mange andre nybegynnere kan lære seg ett og annet da. Lenke til kommentar
aadnk Skrevet 30. november 2004 Del Skrevet 30. november 2004 Den eneste forskjellen mellom funksjonene Chr og Chr$, er at forstenevnte returnerer en Variant, mens den andre returnerer en streng. En Variant, som forøvrig kan inneholde alle typer data, har en langt dårligere ytelse enn rene, "flytende" strenger. Så for all del, BRUK streng-versjonen av alle funksjoner såfremt det er mulig! Lenke til kommentar
d0ppler Skrevet 30. november 2004 Del Skrevet 30. november 2004 (endret) Den eneste forskjellen mellom funksjonene Chr og Chr$, er at forstenevnte returnerer en Variant, mens den andre returnerer en streng. En Variant, som forøvrig kan inneholde alle typer data, har en langt dårligere ytelse enn rene, "flytende" strenger. Så for all del, BRUK streng-versjonen av alle funksjoner såfremt det er mulig! men hva er egentlig forskjellen på en variant og en streng? en streng kan jo også egentlig inneholde all type data, kan den ikke? Endret 30. november 2004 av dga01 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå